【发布时间】:2010-03-16 18:20:13
【问题描述】:
我正在使用 XNA 在 C# 中制作俄罗斯方块克隆,但我不确定如何实际实现这些块。
我不认为将形状制作成图像会起作用(因为在形成线条时会移除部分),所以我有块来组成像This 这样的块。
不幸的是,我不知道如何实际定义块来制作碎片,也不知道如何操纵它们以使它们旋转等等。
编辑:我也需要学习如何制作俄罗斯方块网格的帮助。
【问题讨论】:
我正在使用 XNA 在 C# 中制作俄罗斯方块克隆,但我不确定如何实际实现这些块。
我不认为将形状制作成图像会起作用(因为在形成线条时会移除部分),所以我有块来组成像This 这样的块。
不幸的是,我不知道如何实际定义块来制作碎片,也不知道如何操纵它们以使它们旋转等等。
编辑:我也需要学习如何制作俄罗斯方块网格的帮助。
【问题讨论】:
我之前没有制作过俄罗斯方块,但经过一番思考,我相信我会使用一个简单的矩阵来制作我的作品。例如,您的整个游戏板将是一个大矩阵。该矩阵的一个子集,比如它的 4x4 块,将是一个游戏块。该 4x4 块的哪些部分将被填充将取决于您要创建的特定部分。矩阵的每个部分都可以有一个布尔标志,指示它是否已填充。这是一个非常简单的观点,但我认为这是一个可行的解决方案。
【讨论】:
使用布尔矩阵来模拟屏幕的状态。每一块本身就是另一个较小的布尔矩阵。
旋转一块就像玩一点坐标一样简单(我把这个留给你)。
关于如何渲染,只需为矩阵ored 中的每个真值绘制一块平铺,当前下降的块移动和旋转。
【讨论】:
对于积木,我强烈建议使用 3D。您仍然可以通过锁定相机等使游戏看起来像 2D,但您将从矢量图形中受益匪浅。您的块将是简单的立方体(平坦或有一定深度),您可以在屏幕上旋转和移动。
对于网格,请查看 @fortran 和 @aaron 的答案,布尔矩阵可以解决问题。
【讨论】:
也许这个指向Coding4Fun 的链接会有所帮助。它是德文的,但你应该能够获得源代码并看看这里的问题是如何解决的。
为了确定,这里是direct download link。
【讨论】: