Exemple #1
0
        private Point GetTileCoordinates(Point playerCoordinates, TilePositionType tilePositionType)
        {
            switch (tilePositionType)
            {
            case TilePositionType.DOWN:
                return(new Point(playerCoordinates.X, playerCoordinates.Y + 1));

            case TilePositionType.UP:
                return(new Point(playerCoordinates.X, playerCoordinates.Y - 1));

            case TilePositionType.LEFT:
                return(new Point(playerCoordinates.X - 1, playerCoordinates.Y));

            case TilePositionType.RIGHT:
                return(new Point(playerCoordinates.X + 1, playerCoordinates.Y));
            }
            return(Point.Empty);
        }
Exemple #2
0
        private bool CheckTile(TilePositionType tilePositionType)
        {
            var playerCoordinates = GetPlayerCoordinates();
            var tileCoordinates   = GetTileCoordinates(playerCoordinates, tilePositionType);
            var tile = gameBoard.GetTile(tileCoordinates);

            if (tile == null)
            {
                return(false);
            }

            if (tile.Type == TileType.DESTROYED_BLOCK || tile.Type == TileType.INDESTRUCTIBLE_BLOCK)
            {
                var floatPlayerRect = new FloatRect(Position.X, Position.Y, Tile.TileSize, Tile.TileSize);
                var floatTileRect   = new FloatRect(tileCoordinates.X * Tile.TileSize, tileCoordinates.Y * Tile.TileSize, Tile.TileSize, Tile.TileSize);

                if (!floatPlayerRect.Intersects(floatTileRect))
                {
                    return(true);
                }
                return(false);
            }
            return(true);
        }