Итак, я пытаюсь создать сетку с использованием 2D-массива, мне нужно назначить изображения каждой точке 2D-массива, но я не могу найти способ с теми знаниями, которые у меня есть в настоящее время. У меня нет проблем с созданием фактического массива, просто присваивая изображение массиву.
mark = Content.Load<Texture2D>("mark");
peep1 = Content.Load<Texture2D>("peep1");
peep2 = Content.Load<Texture2D>("peep2");
peep3 = Content.Load<Texture2D>("peep3");
int[,] grid = new int[6, 6];
grid[0, 0] = peep1;
Я пробовал назначать изображение несколькими способами, показанный выше был моей первой попыткой, так как это то, что я сохранил. Извините, если это действительно очевидно, я еще новичок.





Не уверен, каковы ваши точные требования, но вы можете сделать это так:
mark = Content.Load<Texture2D>("mark");
peep1 = Content.Load<Texture2D>("peep1");
peep2 = Content.Load<Texture2D>("peep2");
peep3 = Content.Load<Texture2D>("peep3");
Texture2D[,] grid = new Texture2D[6, 6];
grid[0, 0] = peep1;
Просто измените тип данных с int на Texture2D, поскольку вы все равно назначаете Texture2D вместо int.
Вы можете прокручивать свою сетку и рисовать каждый Texture2D с помощью SpriteBatch. Было бы намного проще создать игру, если бы вы знали объектно-ориентированное программирование, такое как создание моделей с помощью классов и тому подобное. Это ОЧЕНЬ сложно объяснить здесь как ответ, но вы должны изучить это, так как это очень полезно.
если вы действительно хотите нарисовать их в сетке, вы должны вызвать один из методов DRAW и предоставить ему позицию, которой вы хотите назначить текстуры .. вы должны создать массив точек, в которые вы хотите рисовать текстуры, и использовать его в методе darw. использовать вектор или точку: (скажем, 60X60 пикселей)
markpoint = new Point (0,0);
peep1pont = new Point (60,0);
peep2point = new Point (0,60);
peep3point = new Point (60,60);
for i to numberOfTextures:
draw(...,...,Texture(the array or grid of textures),Point(the array or grid of points),...,...)
Так что я думаю, что имею это право. Как обычно, я создаю переменную для каждого изображения, например peep1 и peep2. Затем создать массив точек и назначить каждую точку в массиве? Что-то вроде этого?
да, именно так ... это простое решение и прямое решение вашей конкретной проблемы. если вы хотите более сложные решения, вы должны проверить это Плитки
Если я не ошибаюсь, вы хотите создать карту с массивом, который вы определяете. Если да, то вот способ сделать это: - Прежде всего, создайте сетку:
int[,] grid = new int[,]
{
//just 2x2 grid, for example
{0, 1,},
{1, 2,},
}
- Затем в рисовании на основе сетки, созданной на шаге 1:
public void Draw(SpriteBatch spriteBatch)
{
spriteBatch.Begin();
for (int i = 0; i < grid.GetLength(1); i++)//width
{
for (int j = 0; j < grid.GetLength(0); j++)//height
{
int textureIndex = grid[j, i];
if (textureIndex == -1)
continue;
Texture2D texture = tileTextures[textureIndex];//list of textures
spriteBatch.Draw(texture, new Rectangle(
i * 60, j * 60, 60, 60), Color.White);
}
}
spriteBatch.End();
}
И как мне заставить это рисовать как часть сетки? Извините, я действительно изо всех сил пытаюсь разобраться в моноигре