用python和pygame写游戏_用Python和Pygame做小游戏2, 1024方块

我们之前用有美一人:基于Python数据分析的思路写个1024小游戏​zhuanlan.zhihu.comv2-efcb50e1c438a0dde724b24614a3f14f_180x120.jpg

,现在换成pygame看看能不能简化代码。

游戏本身逻辑代码因为是numpy写的,基本上不用动。只是图形界面和键盘绑定事件要做替换。我在替换底层框架的操作上一般是先把所有相关的引用都去掉,这样python或者java就会出错,只需要无脑替换代码就好了。

在这里,把Qt相关的import全部去掉, main方法也要替换成pygame的初始代码main方法

原来的MyApp 就不再需要继承QWidget子类了,但里面的初始化方块列表需要保留。 还是需要建立一个4x4的矩阵,然后显示到主界面上。同时还要在内存中建立一个对应numpy数组,做数据合并和旋转计算。myapp类

Square方法也基本不用动Square类

pygame有两个重要的类,一个是surface,用来处理图形操作。一个是rect,代表坐标和长宽,给出初始值后就可以通过left, right拿到计算后的坐标值,而不需要我们自己写代码计算,非常方便。

只需要把Qt的fillRect方法换成pygame.draw.rect , DISPLAYSURF是main方法里建立的一个surface对象,相当于原来的qlabel。所有的图像操作都由它来处理。

同时字体也用pygame.font替换掉了,font可以用get_rect()拿到rect , 用blit方法就可以象图片的操作画到DISPLAYSURF上面了。详情可以参阅用有美一人:用Python和Pygame做小游戏1​zhuanlan.zhihu.comv2-ba5a41fc042a4c62783f7d4fa3008f91_180x120.jpg

最后是键盘事件,跟Qt没有很大区别,只不过键位需要替换成pygame的常量

键盘事件

总结

pygame 比PyQt更简洁,不需要layout这样的代码,我们只需要担心坐标和更新界面就好了。下一次,我们就需要实现动画效果了,敬请期待。

参考书目《Python和Pygame游戏开发指南》([美]斯维加特(Al Sweigart))【摘要 书评 试读】- 京东图书​u.jd.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值