Python 俄罗斯方块, 基于pyqt5实现俄罗斯方块 --pyqt5 进阶

      学习了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]]
  • 37
    点赞
  • 133
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值