2016-05-03 4 views
1

Я создаю 2D-игру, и хочу, чтобы иметь возможность рисовать плитки, чтобы создать свой игровой мир. Я создал List так:Monogame - Создание плитки map

static private List<Rectangle> tiles = new List<Rectangle>(); 

public const int TileWidth = 50; 
public const int TileHeight = 50; 

public static void initialise(Texture2D tileTexture) 
{ 
     texture = tileTexture; 
     tiles.Clear(); 

     tiles.Add(new Rectangle(0, 267, TileWidth, TileHeight)); 
     tiles.Add(new Rectangle(1575,795, TileWidth, TileHeight)); 
     tiles.Add(new Rectangle(1315,267, TileWidth, TileHeight)); 
     tiles.Add(new Rectangle(1051,797, TileWidth, TileHeight)); 
    } 

Я пытаюсь создать плитки в моей игровой мир таким образом, что позволяет мне вручную выбрать, где я помещаю каждую плитку, используя массив, однако я с некоторыми трудностями с этим.

+0

Будьте немного более ясны, расскажите о своей проблеме и покажите, что вы пробовали. – Gusman

ответ

-1

Вы можете сделать список прямоугольников, как этот

for(int i = 0; i < tiles.Count(); i++) 
    spriteBatch.Draw(tileImage, tiles[i], Color.White); 

Просьба представить более подробную информацию о ваших ошибках/борьбы и я буду предоставлять лучший ответ.

1

Я предполагаю, что вам нужен двойной массив для плиток? Я собираюсь идти вперед и делать некоторые догадки о том, что именно вы пытаетесь достичь здесь.

Может быть что-то вроде этого:

private static Rectangle[][] tiles; 
private const int worldWidth = 50; 
private const int worldDepth = 50; 

public static void Initialize(Texture2D tileTexture) 
{ 
    // Initialize game table 
    tiles = new Rectangle[worldWidth][]; 
    for (int l = 0; l < worldWidth; l++) 
    { 
     tiles[l] = new Rectangle[worldDepth]; 
    } 

    // Fill rectangles in for every tile 
    for(int i = 0; i < worldWidth; i++) 
    { 
     for (int k = 0; k < worldDepth; k++) 
     { 
      // Tile (0,0): x = 0, y = 0 
      // Tile (0,1): x = 0, y = 50 
      // and so on... 
      tiles[i][k] = new Rectangle(i * TileWidth, k * TileHeight, TileWidth, TileHeight); 
     } 
    } 
} 

Есть, вероятно, более эффективные способы сделать это, но это простое решение и должно быть легко понять.

+1

Да, я создал список прямоугольников с названием «плитки», сохраняющий расположение моих плит с листа спрайтов, который у меня есть. Я хотел бы нарисовать плитки с массивом 2d, но только на некоторых частях карты, так как я нацелен на стиль гусениц/лабиринт подземелья. Любая помощь приветствуется. – Spoingen

 Смежные вопросы

  • Нет связанных вопросов^_^