【问题标题】:Swapping tiles in a Match3 game在三消游戏中交换瓷砖
【发布时间】:2025-12-28 06:45:06
【问题描述】:

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

我创建了一个名为 Tile 的类,其中包含有关 tile 的信息,例如:Texture2D、Vector2 位置、一些布尔值、整数等。在另一个类中,我有这个瓦片对象的二维数组(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[,] 是我的二维数组。当我跟踪游戏时,我看到瓷砖被交换了,但视觉上我没有看到任何变化。我该如何处理这种情况?谢谢。

【问题讨论】:

    标签: c# .net xna xna-4.0


    【解决方案1】:

    您的交换代码看起来正确.. Atm 您有 2 个用于瓷砖位置的独立系统。定位向量和数组......要么你需要交换向量和数组中的位置,要么扔掉一个位置系统。

    【讨论】: