如何使用C#在XNA中创建Tetris块?

时间:2010-03-15 18:33:16

标签: c# xna tetris

我正在使用XNA在C#中进行俄罗斯方块克隆,我不确定如何实际实现这些块。

我不认为将形状设为图像会起作用(因为在形成线条时会删除部分),所以我有块来组成像This这样的部分。

不幸的是,我不知道如何实际定义块来制作碎片,我也不知道如何操纵它们以使它们旋转等等。

编辑:我也需要帮助学习如何制作俄罗斯方块网格。

4 个答案:

答案 0 :(得分:1)

使用布尔矩阵来模拟屏幕状态。每个部分本身就是另一个较小的布尔矩阵。

旋转一块就像玩坐标一样简单(我把它留给你)。

关于如何渲染,只需为矩阵ored中的每个真值绘制一块瓦片,并将当前下落的棋子移动并旋转。

答案 1 :(得分:1)

我之前没有创建俄罗斯方块,但经过一番思考后,我相信我会用一个简单的矩阵来创建我的作品。例如,你的整个游戏板将是一个大矩阵。该矩阵的一个子集,比如它的4x4块,将是一个游戏块。将填充该4x4块的哪些部分将由您要创建的特定部分确定。矩阵的每个部分都可以有一个布尔标志,指示它是否已填充。这是一个非常简单的观点,但我认为这是一个可行的解决方案。

答案 2 :(得分:1)

对于块,我强烈建议使用3D。你仍然可以通过锁定相机等使游戏看起来像2D,但是你将从矢量图形中获益很多。您的块将是简单的立方体(平面或有一定深度),您可以在屏幕上旋转和移动。

对于网格,请查看@ fortran和@ aaron的答案,布尔矩阵可以解决问题。

答案 3 :(得分:1)

也许这个Coding4Fun的链接会有所帮助。它是德语版,但你应该能够获得源代码并看一下这里解决问题的方法。

确定,direct download link