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); }
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); }