在Match3游戏中交换磁贴

时间:2012-02-26 12:31:51

标签: c# .net xna xna-4.0

我是这里的新手和XNA编程,但我在C#中有一些技巧。现在我正在尝试使用Visual Studio 2010在XNA 4.0中制作一个match3游戏,我遇到了麻烦。

我创建了一个名为Tile的类,它有关于tile的信息,如:Texture2D,Vector2位置,一些bool,int等。在另一个类中,我有这个tile对象的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;
}

其中x1y1x2y2是两个选定图块数组中的坐标,Tiles[,]是我的二维数组。当我追踪游戏时,我看到瓷砖被交换,但视觉上看不到任何变化。我该如何应对这种情况?感谢。

1 个答案:

答案 0 :(得分:1)

您的交换代码看起来正确.. Atm您有两个独立的系统用于平铺位置。定位向量和数组......要么你需要交换向量和数组中的位置,要么抛弃其中一个位置系统。