首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用Python和Pygame做小游戏2,1024方块

我们之前用[PyQt5实现过1024方块游戏],现在换成pygame看看能不能简化代码。

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

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

main方法

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

myapp类

Square方法也基本不用动

Square类

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

同时字体也用pygame.font替换掉了,font可以用get_rect()拿到rect , 用blit方法就可以象图片的操作画到DISPLAYSURF上面了。详情可以参阅用[Python和Pygame做小游戏1]

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

键盘事件

总结

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200226A08GK500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券