学习了pyqt5后,总想弄些有趣点的, 然后就想起了弄一个小游戏, 弄一个简单的小游戏, 然后就用pyqt5写了一个俄罗斯方块的小游戏
开发环境
- windows 10
- python3.8x
游戏界面
游戏思路
了解俄罗斯方法的基本操作:方块下降、方块旋转、方块的左右移动、方块的填充
1、 方块的下降,可以看成是一个二维数组,创建一个20行(y轴)10列(x轴)的二维数组,初始化数值为0, 方块从最顶端(第20行)下降到最低端(第1行), 也就是方块的高度在减少,也就是行(row)的减少, 解决:利用QTimer设置定时器, 每隔一段时间启动一次方块下降的函数,就可以实现方块随时间下降, 但是怎么判断方块下降到底了呢,就是设置二维数组的第0行 为1,如果下降过程中遇到1的二维数组,则证明碰到了其他方块或者方块到底了。
2、 方块的旋转, 最简单的方法就是枚举出该类型的所有方块(包括旋转的),可以参考一下我的写法
blocks = {
'L Shape': [[[0, 0], [0, -1], [0, -2], [1, -2]], [[-1, -1], [0, -1], [1, -1], [-1, -2]],
[[-1, 0], [0, 0], [0, -1], [0, -2]], [[-1, -1], [0, -1], [1, -1], [1, 0]]],
'J Shape': [[[0, 0], [0, -1], [0, -2], [-1, -2]]