Pytris |
---|
开发 |
Lukasz Grzegorz Maciak |
---|
游戏平台 |
Python(Pygame) |
---|
发行时间 |
2010年6月11日 |
---|
最新版本 |
v0.2 - win(2012年3月15日) |
---|
预览块数 |
1 |
---|
场地大小 |
10 × 24 |
---|
暂存 |
无 |
---|
硬降 |
有 |
---|
旋转系统 |
专用 |
---|
|
Pytris 是一款 Python 四连方块游戏。
该游戏的创作目的是驳斥“俄罗斯方块是 Hello World 级别的编程”这一说法。
该游戏的制作思路是“要使人一眼就能看出来这是什么游戏,新奇的特征不必全有”。
该游戏使用 SRS 的方块配色,但方块入场位置和旋转情况都和 SRS 不同。
玩法
升级、得分。
每消 20 行升一级。
得分表参照 Tetris (Game Boy)。[注 1]
死亡判定:顶出死亡——第 24 行出现任意砖格。[注 2]
操作
左右键横移,上键旋转,下键软降,空格键硬降,Esc 键暂停,F1 键重来。
DAS = 100 毫秒,ARR = 150 毫秒,所有操作的按键都取这两个数值。
方块环境配置
七种方块使用 SRS 配色。
为了分辨其他方块和 I 的位置关系,游戏中的碰撞箱最大取到 6×6,入场位置如上图所示。
其中,X 格坐标为 (5,24),各方块各旋转状态的坐标都是以 X 格为基点延取的。
旋转改变的是方块在碰撞箱内的位置,横移和降落改变的是整个碰撞箱在场内的位置。
以下图组中,每一组的最左图是入场朝向,右图是依次旋转操作后的朝向:
(J 呈逆时针旋转,L 和 T 呈顺时针旋转)
Pytris (Python, Lukasz G. Maciak, 2010) 没有踢墙,但有全测机制。
有四种旋转状态的方块(T、J、L)旋转失败时会继续依次测试后两种旋转状态,能成则取,都不能成则方块不动。
于是,游戏中可能会出现 180 和 270 度旋转。
其他说明
该游戏的消行代码不严谨——遇到跨行消除的情况,只有上位消行顶上的方块堆会降落,还可能歪错出十砖零空的行。
该游戏的代码使用了 Python2 专用的 xrange,这个功能在 Python3 里被改成了 range。
要想用 Python3 运行游戏,就要把 PyTris.pyw 第 260、436 和 437 行的 xrange 改成 range。
注释
- ↑ S = M (N + 1),M = 40, 100, 300, 1200
- ↑ 第 24 行还没到天花板,但它已经是死线了。
方块入场就重叠是不会死的,只要附近有足够的空间,就能移动或旋转出去,被重叠部分不会消失。
外链