private bool CheckForFoodCollision(SnakePlayer snakeX) { bool hitFood = false; List <Rectangle> SnakeRects = snakeX.GetRects(); foreach (Rectangle rect in SnakeRects) { if (FoodMngr.IsIntersectingRect(rect, true)) { FoodMngr.AddRandomFood(); snakeX.AddBodySegments(1); snakeX.UpdateScore(1); hitFood = true; } } return(hitFood); }
private void CheckForCollisions() { if (Player1.IsIntersectingRect(new Rectangle(-100, 0, 100, GameCanvas.Height))) { Player1.OnHitWall(Direction.left); } if (Player1.IsIntersectingRect(new Rectangle(0, -100, GameCanvas.Width, 100))) { Player1.OnHitWall(Direction.up); } if (Player1.IsIntersectingRect(new Rectangle(GameCanvas.Width, 0, 100, GameCanvas.Height))) { Player1.OnHitWall(Direction.right); } if (Player1.IsIntersectingRect(new Rectangle(0, GameCanvas.Height, GameCanvas.Width, 100))) { Player1.OnHitWall(Direction.down); } //Is hitting food List <Rectangle> SnakeRects = Player1.GetRects(); foreach (Rectangle rect in SnakeRects) { if (FoodMngr.IsIntersectingRect(rect, true)) { FoodMngr.AddRandomFood(); Player1.AddBodySegments(1); score++; ScoreTxtBox.Text = score.ToString(); } if (FoodMngr.IsIntersectingRectWithRed(rect, true)) { FoodMngr.AddRandomFoodRed(); Player1.AddBodySegments(1); score += 2; ScoreTxtBox.Text = score.ToString(); } } }
private void CheckForCollisions() { if (Player1.IsSelfIntersecting()) // Check for collisions with itself { SetGameOver("Hit itself"); // If so, trigger the game-over screen } if (Player1.IsIntersectingRect(new Rectangle(-100, 0, 100, GameCanvas.Height))) { SetGameOver("Hit left wall"); } if (Player1.IsIntersectingRect(new Rectangle(0, -100, GameCanvas.Width, 100))) { SetGameOver("Hit top wall"); } if (Player1.IsIntersectingRect(new Rectangle(GameCanvas.Width, 0, 100, GameCanvas.Height))) { SetGameOver("Hit right wall"); } if (Player1.IsIntersectingRect(new Rectangle(0, GameCanvas.Height, GameCanvas.Width, 100))) { SetGameOver("Hit bottom wall"); } // Is hitting food var snakeRects = Player1.GetRects(); foreach (var rect in snakeRects) { if (FoodMngr.IsIntersectingRect(rect, true)) { FoodMngr.AddRandomFood(); Player1.AddBodySegments(1); Player1.AddScore(); score++; ScoreTxtBox.Text = score.ToString(); } } }
private void CheckForCollisions() { if (player.IsIntersectingRect(new Rectangle(-100, 0, 100, GameCanvas.Height))) { player.OnHitWall(Direction.Left); } if (player.IsIntersectingRect(new Rectangle(0, -100, GameCanvas.Width, 100))) { player.OnHitWall(Direction.Up); } if (player.IsIntersectingRect(new Rectangle(GameCanvas.Width, 0, 100, GameCanvas.Height))) { player.OnHitWall(Direction.Right); } if (player.IsIntersectingRect(new Rectangle(0, GameCanvas.Height, GameCanvas.Width, 100))) { player.OnHitWall(Direction.Down); } //Is hitting food List <Rectangle> SnakeRects = player.GetRects(); foreach (Rectangle rect in SnakeRects) { if (foodManager.IsIntersectingRect(rect, true)) { foodManager.AddRandomFood(); player.AddBodySegments(1); score += GetScore(); ScoreTxtBox.Text = score.ToString(); } } }
//Collision Check Methods /* * if (Player1.IsIntersectingRect(new Rectangle(-100, 0, 100, GameCanvas.Height))) * Player1.OnHitWall(Direction.left); * * if (Player1.IsIntersectingRect(new Rectangle(0, -100, GameCanvas.Width, 100))) * Player1.OnHitWall(Direction.up); * * if (Player1.IsIntersectingRect(new Rectangle(GameCanvas.Width, 0, 100, GameCanvas.Height))) * Player1.OnHitWall(Direction.right); * * if (Player1.IsIntersectingRect(new Rectangle(0, GameCanvas.Height, GameCanvas.Width, 100))) * Player1.OnHitWall(Direction.down); * * //Is hitting food * List<Rectangle> SnakeRects = Player1.GetRects(); * foreach(Rectangle rect in SnakeRects) * { * if(FoodMngr.IsIntersectingRect(rect,true)) * { * FoodMngr.AddRandomFood(); * Player1.AddBodySegments(1); * score++; * ScoreTxtBox.Text = score.ToString(); * } * }*/ private bool SnakeWithSnakeCollision() { //collision between snakes List <Rectangle> SnakeBodyRects1 = Player1.GetRects(); List <Rectangle> SnakeBodyRects2 = Player2.GetRects(); Rectangle SnakeHead1 = SnakeBodyRects1.ElementAt(0); Rectangle SnakeHead2 = SnakeBodyRects2.ElementAt(0); //SnakeBodyRects1.RemoveAt(0); //SnakeBodyRects2.RemoveAt(0); //TODO : Check that the heads still have the right values bool opposites = AreHeadbutting(); bool snakesCollided = false; String CollisionMessage = ""; //TODO : End conditions maybe changed later on //Head Collision: if (opposites && (SnakeHead1 == SnakeHead2)) { snakesCollided = true; int points1 = Player1.GetScore(); int points2 = Player2.GetScore(); CollisionMessage = "Head On Collision "; //tie if (points1 == points2) { CollisionMessage += "- Tie "; } //p1 is bigger else if (points1 >= points2) { CollisionMessage += "- Player1 Wins "; } //p2 is bigger else { CollisionMessage += "- Player2 Wins "; } } //Side Collision: else { bool player2Crash = false; bool player1Crash = false; //check if player2 crashed into player1 foreach (Rectangle rect in SnakeBodyRects1) { if (SnakeHead2 == rect) { snakesCollided = true; player2Crash = true; } } //check if player1 crashed into player2 foreach (Rectangle rect in SnakeBodyRects2) { if (SnakeHead1 == rect) { snakesCollided = true; player1Crash = true; } } if (snakesCollided) { CollisionMessage = "Ran Into Other Player "; if (player1Crash && player2Crash) { CollisionMessage += "- Tie "; } //p1 is bigger else if (player2Crash) { CollisionMessage += "- Player1 Wins "; } //p2 is bigger else if (player1Crash) { CollisionMessage += "- Player2 Wins "; } } } //send message of game end if (snakesCollided) { GameHasEnded(CollisionMessage); } //return CollisionMessage; return(snakesCollided); }