2012-02-25 2 views
1

Эй мне было интересно, как я бы идти о кодировании способ загрузки и нарисовать 2d уровня из 2d массива в XNA 4.Загрузка уровня из массива, XNA 4, C#

Вот что у меня есть так далеко.

Я загрузка моего массива как этот

 mapArray = new int[,] 
     { 
      {0, 0, 0, 0}, 
      {2, 0, 0, 2}, 
      {0, 0, 0, 0}, 
      {1, 1, 1, 1} 
     }; 

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

Есть ли кто-нибудь, кто мог бы объяснить подробно, как я буду рисовать это?

Благодаря

-Josh

+0

Если это 2D-массив, вы, вероятно, захотите использовать в течение некоторого времени два цикла 'for'. (http://www.dotnetperls.com/2d-array-loop) – summea

+0

Это 2-й массив, но как я могу узнать, какое количество в каком слоте? – OstlerDev

ответ

1

Вы могли бы быть в состоянии использовать что-то вроде этого, чтобы проверить, что число в каждом слоте: (Примечания: Это непроверенный код ... но Кодекс скелет приходит из обучающих нашел here)

using System; 

class Program 
{ 
    static void Main() 
    { 
     mapArray = new int[,] 
     { 
      {0, 0, 0, 0}, 
      {2, 0, 0, 2}, 
      {0, 0, 0, 0}, 
      {1, 1, 1, 1} 
     }; 

     // Get upper bounds for the mapArray. 
     int bound0 = mapArray.GetUpperBound(0); 
     int bound1 = mapArray.GetUpperBound(1); 

     // Use for-loops to iterate over the mapArray elements. 
     for (int i=0; i<=bound0; i++) 
     { 
      for (int j=0; j<=bound1; j++) 
      { 
       int value = mapArray[i, j]; 
       Console.WriteLine(value); 
      } 
     } 
    } 
} 

в принципе, этот код:.

  • инициализирует ваши mapArray
  • чек на концы (ограничивает) оба размеров ваших mapArray
  • петель через первые размерности mapArray
  • затем, в тот же время цикла по первому измерению, существует второй цикл который проходит через второй размерности mapArray
  • в середине обоих этих петель, ваше значение найдено: int value = mapArray[i, j];

Here is a reference для двумерных массивов для C#. И here is a reference на массивах в C#. Надеюсь, это поможет немного!

+0

Я просто понял, используя некоторые идеи из этого кода http://www.dotnetperls.com/2d-array-loop Спасибо всем !!! – OstlerDev

+0

Только что отредактировал этот ответ с еще одним объяснением в конце. Надеюсь это поможет! – summea

+1

Вот код, в который я попал, используя http://pastebin.com/vW0zjp8p – OstlerDev

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