Pytris (Python, Nicolas Triantafillou, 2014)
Pytris | |
---|---|
开发 | Nicolas Triantafillou |
游戏平台 | Python(Pygame) |
发行时间 | 2014年8月14日 |
游戏信息 | |
预览块数 | 0 |
场地大小 | 10 × 20 |
暂存 | 无 |
硬降 | 无 |
旋转系统 | 专用 |
Pytris 是一款 Python 四连方块游戏。
该游戏模拟俄罗斯方块的玩法,但代码有很多不严谨的地方。
玩法
消行。
死亡判定:重叠死亡。
操作
左右键横移,上键顺时针旋转,下键软降一格。
这四个操作都只能单点。
方块环境配置
O 暗水色,I 红色,J 紫色,L 黄色,T 淡褐色,S 青色,Z 绿色。
|
七种方块都使用 4×4 碰撞箱。
其中,X 格坐标为 (6,18)。
O 不能旋转,其他方块每次把整个碰撞箱顺时针旋转 90 度。
各方块入场朝向如下:
|
|
|
|
|
|
|
Pytris (Python, Nicolas Triantafillou, 2014) 有卡碰撞箱的旋转限制。
只要某个方块所对应的 4×4 碰撞箱区域包含了任意砖格,这个方块就不能旋转。
Pytris (Python, Nicolas Triantafillou, 2014) 有 1–2 格的踢墙和踢地。[注 1]
踢墙和踢地仅在偏移之前受卡碰撞箱的限制。
只要偏移前没有砖格卡位,旋转就能成功,而且偏移后的新 4×4 区域内的卡位砖格会随这次旋转而消失。
踢地次数不受限制,可无限重置。
代码不严谨之处
一、消行的判定和执行之间隔了一次自动降落。
方块在已判定但未执行消行时旋转,就会既消行又保留方块。
二、执行消行的代码并不紧紧跟随方块锁定。
方块可以悬空消行,而且如果还没接地就已经完全消化,游戏将无法继续。
三、方块旋转的逻辑是先清除旧方块再在目标位置添加新方块。
悬空消行所产生的不正常方块可通过旋转变回正常的四连方块。
如果方块已被完全消化,再按旋转就没用了,因为“清除旧方块”失败。
四、方块的消行检测总是紧紧跟随自动降落。
这一条是 bug 中的 bug——手动软降方块到悬空消行位置,就不会触发悬空消行。
注释
- ↑ 仅对墙壁和场底有效