Обмен плитки в игре Match3 - PullRequest
0 голосов
/ 26 февраля 2012

Я новичок здесь и в программировании на XNA, но у меня есть некоторые навыки в C #. Сейчас я пытаюсь сделать игру match3 в XNA 4.0 с Visual Studio 2010, и у меня возникли проблемы.

Я создал класс с именем Tile, который содержит информацию о плитке, такую ​​как: Texture2D, Vector2 position, некоторые bools, ints и так далее. В другом классе у меня есть 2D-массив (8x8) объектов этой плитки (всего 64). Когда я запускаю игру, я вижу сетку с текстурами, какими они должны быть. Мне удалось создать метод выбора плиток щелчком мыши, но я не могу поменять местами две плитки. Вот мой метод обмена:

public void swapPieces(int x1, int y1, int x2, int y2)
{
    Tile temp;

    temp = Tiles[x1, y1];
    Tiles[x1, y1] = Tiles[x2, y2];
    Tiles[x2, y2] = temp;
}

, где x1, y1, x2 и y2 - это координаты в массиве двух выбранных плиток, а Tiles[,] - это мой двумерный массив. Когда я прослеживаю игру, я вижу, что плитки поменялись местами, но визуально я не вижу изменений. Как я могу справиться с этой ситуацией? Спасибо.

1 Ответ

1 голос
/ 26 февраля 2012

Ваш код для обмена выглядит правильно. У вас есть 2 отдельные системы для положения плиток. Вектор позиционирования и массив ... либо вам нужно поменять местами вектор и местоположение в массиве, либо выбросить одну из систем позиционирования.

...