2022 Pygame精灵类重构教程(四)入门疑问
- 内容介绍
- 文章标签
- 相关推荐
本文共计1579个文字,预计阅读时间需要7分钟。
前两章已完成游戏开发,本章采用OOP风格重构游戏,随后为游戏添加音乐元素。若已完成前三章代码,可能会发现代码较为混乱。想修改某个代码?寻找困难、修改起来?
前面3章已经完成了游戏,这章使用OOP风格重构游戏,然后给游戏添加一点音乐。
用精灵类重构
如果你完成了前3章的代码,应该会发现代码很乱。想更改某个代码?查找困难、修改起来更困难!不断添加的新功能让我们的代码越来越复杂,难以阅读。
考虑使用OOP重构代码,将游戏元素用类组织起来。Pygame提供了Sprite,便于我们控制游戏中的元素:
Sprite(精灵)类,可以看成是surface+rectangle的组合,并且绘制和更新起来非常容易。
想要绘制一个精灵,只需要:1.创建sprite;2.将sprite放到Group或GroupSingle中;3.通过group进行 draw/update (和把大象放进冰箱里一样简单)
Group,是用于装精灵的容器。GroupSingle,只能装一个精灵。
下面,我们用精灵重构玩家的属性和方法:继承精灵类,并重写其方法。__init__(self)在初始化方法中,初始化素材,初始image和rect。注意,这里image和rect是固定写法,Sprite更新时会用到这两个名称。另外初始化方法中要调用父类的初始化方法。
update(self):角色更新的逻辑。
本文共计1579个文字,预计阅读时间需要7分钟。
前两章已完成游戏开发,本章采用OOP风格重构游戏,随后为游戏添加音乐元素。若已完成前三章代码,可能会发现代码较为混乱。想修改某个代码?寻找困难、修改起来?
前面3章已经完成了游戏,这章使用OOP风格重构游戏,然后给游戏添加一点音乐。
用精灵类重构
如果你完成了前3章的代码,应该会发现代码很乱。想更改某个代码?查找困难、修改起来更困难!不断添加的新功能让我们的代码越来越复杂,难以阅读。
考虑使用OOP重构代码,将游戏元素用类组织起来。Pygame提供了Sprite,便于我们控制游戏中的元素:
Sprite(精灵)类,可以看成是surface+rectangle的组合,并且绘制和更新起来非常容易。
想要绘制一个精灵,只需要:1.创建sprite;2.将sprite放到Group或GroupSingle中;3.通过group进行 draw/update (和把大象放进冰箱里一样简单)
Group,是用于装精灵的容器。GroupSingle,只能装一个精灵。
下面,我们用精灵重构玩家的属性和方法:继承精灵类,并重写其方法。__init__(self)在初始化方法中,初始化素材,初始image和rect。注意,这里image和rect是固定写法,Sprite更新时会用到这两个名称。另外初始化方法中要调用父类的初始化方法。
update(self):角色更新的逻辑。

