如何使用C#在XNA中创建俄罗斯方块?

如何使用C#在XNA中创建俄罗斯方块?,c#,xna,tetris,C#,Xna,Tetris,我正在用XNA用C#制作一个俄罗斯方块克隆,我不确定如何实际实现这些块 我认为把形状做成图像是行不通的(因为当线条形成时,部分会被移除),所以我有块来组成像这样的块 不幸的是,我不知道如何实际定义块来制作片段,也不知道如何操纵它们以使它们旋转,等等 编辑:我还需要帮助学习如何制作俄罗斯方块网格。使用布尔矩阵来模拟屏幕的状态。每一块本身就是另一个较小的布尔矩阵 旋转一个棋子就像玩一点坐标一样简单(我把这个留给你们了) 关于如何渲染,只需为矩阵中的每个真值绘制一块平铺或,并移动和旋转当前落下的块。使

我正在用XNA用C#制作一个俄罗斯方块克隆,我不确定如何实际实现这些块

我认为把形状做成图像是行不通的(因为当线条形成时,部分会被移除),所以我有块来组成像这样的块

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


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

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

旋转一个棋子就像玩一点坐标一样简单(我把这个留给你们了)


关于如何渲染,只需为矩阵中的每个真值绘制一块平铺
,并移动和旋转当前落下的块。

使用布尔矩阵对屏幕状态建模。每一块本身就是另一个较小的布尔矩阵

旋转一个棋子就像玩一点坐标一样简单(我把这个留给你们了)


关于如何渲染,只需为矩阵中的每个真实值绘制一块瓷砖,
,并移动和旋转当前落下的块。

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

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

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


对于网格,请看@fortran和@aaron的答案,布尔矩阵就可以了。

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

对于网格,请看@fortran和@aaron的答案,一个布尔矩阵就可以了。

这个链接可能会有所帮助。它是用德语写的,但是你应该能够得到源代码,看看这个问题是如何解决的

可以肯定的是,这里的。

也许这个链接会有所帮助。它是用德语写的,但是你应该能够得到源代码,看看这个问题是如何解决的

可以肯定的是,这里有一个