void OnMarioInstanceVsGumbaListAxisAlignedRectangleInstanceCollisionOccurred(Super_Marios_Bros.Entities.Mario first, Entities.Gumba second) { Console.WriteLine("Collsion occured"); bool wasPushedDown = first.AxisAlignedRectangleInstance.LastMoveCollisionReposition.Y > 0; bool hasDestroyedBlock = false; if (wasPushedDown) { for (int i = 0; i < GumbaList.Count; i++) { if (GumbaList[i].AxisAlignedRectangleInstance.CollideAgainst(first.DieThing)) { Console.WriteLine("Collided"); MarioInstance.Velocity.Y = 160; CombinedShapeCollection.RemoveRectangle(A_BrickList[i].AxisAlignedRectangleInstance); GumbaList[i].Deadgumba(); PassonClass.Score += 100; hasDestroyedBlock = true; break; } } if (!hasDestroyedBlock) { // New code: Console.WriteLine("The other way"); MarioInstance.Velocity.Y = 160; second.Deadgumba(); PassonClass.Score += 100; } } else if (MarioInstance.AxisAlignedRectangleInstance.CollideAgainst(second.RightMarioDead) || MarioInstance.AxisAlignedRectangleInstance.CollideAgainst(second.LeftMarioDead)) { second.Destroy(); if (PassonClass.mariobig == true) { PassonClass.mariobig = false; } else if (PassonClass.mariobig == false) { HandleMarioDead(); } } }
void OnGumbaListAxisAlignedRectangleInstanceVsSolidCollisionCollisionOccurredTunnel(Entities.Gumba first, FlatRedBall.TileCollisions.TileShapeCollection second) { if (this.GumbaListAxisAlignedRectangleInstanceVsSolidCollisionCollisionOccurred != null) { GumbaListAxisAlignedRectangleInstanceVsSolidCollisionCollisionOccurred(first, second); } }
void OnGumbaListAxisAlignedRectangleInstanceVsSolidCollisionCollisionOccurred(Entities.Gumba first, FlatRedBall.TileCollisions.TileShapeCollection second) { var collisionReposition = first.AxisAlignedRectangleInstance.LastMoveCollisionReposition; var hasCollidedWithWall = collisionReposition.X != 0; if (hasCollidedWithWall) { var isWallToTheRight = collisionReposition.X < 0; if (isWallToTheRight && first.horin == 1) { first.horin = -1; //LEFT } else if (!isWallToTheRight && first.horin == -1) { first.horin = 1; //RIGHT } } }
void OnMarioInstanceVsGumbaListAxisAlignedRectangleInstanceCollisionOccurredTunnel(Super_Marios_Bros.Entities.Mario first, Entities.Gumba second) { if (this.MarioInstanceVsGumbaListAxisAlignedRectangleInstanceCollisionOccurred != null) { MarioInstanceVsGumbaListAxisAlignedRectangleInstanceCollisionOccurred(first, second); } }