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