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

本文介绍了如何将1024方块游戏从PyQt5迁移到Pygame,主要关注图形界面和键盘事件的替换。通过删除Qt相关引用,替换为Pygame初始化代码,保留游戏逻辑,利用Pygame的Surface和Rect类进行图形操作,使用pygame.draw.rect绘制方块,用pygame.font处理字体,并处理键盘事件。总结中指出,Pygame比PyQt5更简洁,便于处理坐标和界面更新,为后续添加动画效果奠定了基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们之前用[PyQt5实现过1024方块游戏],现在换成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。所有的图像操作都由它来处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值