这是一款经典的俄罗斯方块游戏的俄文版本开源代码,玩家和开发者可以通过它深入了解游戏背后的编程逻辑和技术细节。
我设计方块游戏的思路是这样的:我把所有代码都放在ViewController里了,大约有300行左右,不算很多吧?不过如果用AS3开发可能会更方便一些,在这种语言中确实存在“元件”这一概念。“block_rotation”数组定义每种方块的不同旋转角度。每个元素代表特定旋转状态下各个小方块的坐标(从(0, 0)点开始计算)。每一个独立的小方块只需记住自己的位置,无需关心它属于哪种形状。
对于定位而言,我们以倒立状态下的红色L型为例进行说明:索引按照x轴范围为0-10和y轴范围为0-20来设定。移动区域从屏幕的(0, 0)点开始(这里暂时忽略边框)。假设红L在该状态下初始位置是:0_0,1_0,1_1,1_2,那么它最左上角当前的位置索引为:(8 , 7),则方块的具体坐标计算如下:
- 方块1的坐标是 ((0+8)*小方块宽度), ((0+7)*小方块高度)
- 方块2的坐标是 ((1+8)*小方块宽度), ((0+7)*小方块高度)
- 方块3的坐标是 ((1+8)*小方块宽度), ((1+7)*小方块高度)
- 方块4的坐标是 ((1+8)*小方块宽度,((2+7)*小方块高度)
这样就能通过这些计算来确定每个独立的小方块在屏幕上的确切位置。