Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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();
                }
            }
        }
Esempio n. 3
0
        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();
                }
            }
        }
Esempio n. 4
0
        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();
                }
            }
        }
Esempio n. 5
0
        //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);
        }