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