Я работал над движком карт на основе плитки для своего игрового проекта в Xna C #. Система, как и большинство других, использует цифру, соответствующую плитке в наборе плиток, сопоставленной с определенной позицией на экране. Это работает нормально, но требует, чтобы каждая ячейка на экране вводила число вручную. Вместо этого я решил читать макеты уровней из .txt, содержащего номер каждой плитки в той позиции, в которой она будет играть, например:
1111
0110
1001
1100
Где 1 - трава, а 0 - грязь. Опять же, я знаю, что это обычная техника. Код, который я написал, может прочитать каждую строку и установить следующую позицию в первом столбце для соответствующего графического элемента. Это хорошо, но это не помогает с остальной частью карты. Я искал и не могу найти, как бы вы разбили каждое число в строке на отдельное число, чтобы в первой строке было указано (0,0) = 1, (0,1) = 1 и т. Д., Чтобы я мог затем сопоставьте координаты с координатами x и y на карте, а значение - с типом плитки.
Итак, мне нужна возможность назначить 2d массив, соответствующий текущей позиции (сколько символов осталось в файле, сколько строк в файле .txt), так что я могу просто запустить два разветвленных цикла for ( х и у) для каждой плитки на уровне, т. е.
for (x=0; x<levelwidth; x++)
{
for (y=0; y<levelheight; y++)
{
Row[x].Column[y].Tile = Convert.ToInt32(filepos[x,y]);
}
}