Beispiel #1
0
        private void CheckPlatformCollision(Player player, World level)
        {
            bool canMoveDown  = true;
            bool canMoveLeft  = true;
            bool canMoveRight = true;
            bool canMoveUp    = true;

            foreach (Block block in level.AllObstacles)
            {
                if (!(block is Door))
                {
                    if (canMoveDown == true)
                    {
                        canMoveDown = !(RectangleHelper.CheckTopCollision(player, block));
                    }

                    if (canMoveRight == true)
                    {
                        canMoveRight = !(RectangleHelper.CheckLeftCollision(player, block));
                    }

                    if (canMoveLeft == true)
                    {
                        canMoveLeft = !(RectangleHelper.CheckRightCollision(player, block));
                    }

                    if (canMoveUp)
                    {
                        canMoveUp = !(RectangleHelper.CheckBottomCollision(player, block));
                    }
                }
            }

            player.CanMoveDown  = canMoveDown;
            player.CanMoveLeft  = canMoveLeft;
            player.CanMoveRight = canMoveRight;
            player.CanMoveUp    = canMoveUp;
        }