pygame游戏编程经验总结
前些日子赶完了 python 课的大作业汇报,用的 pygame 做的小游戏——代码文件已投放到 github 上。
经验总结:
-
在没甚游戏编程经验的情况下,我先从小功能入手,例如角色跳跃、攻击,一个个尝试实现它们的demo版;成功实现后,再将不同功能整合进最终项目中,慢慢整合成类。
项目主程序中,最好只存放不同对象交互相关变量,剩下的对象属性整合到类中,方便项目做大之后的管理。
因此:做小 demo 时可以主打一个自由发挥,随便乱写——反正能跑就是赢。但做大项目就需要有一定经验 & 前期做好框架规划
(不然后期主打一个维护屎山,痛苦面具)。 -
跑游戏时出问题 debug :最古老的
print()
检查变量输出反而是最方便的(因为我先前想着screen.blit(变量)
去看变量值……有点蠢,自找麻烦) -
像b站、油管上的大佬教程直接从类入手,个人感觉不太适合新人——不熟悉基础库组件 & 游戏编写思路的话,便于管理的面向对象方法反而会束缚新人的手脚。
不过有些函数的巧妙用法依然可以参考,只是大部分还是要自己多试,
不太可能靠一两个视频教程就能成为 pygame 领域大神。 -
当然,上面我还没有涉及到性能优化等更高级的层次,so请大佬放过。
-
下面是几乎每个类都会用到的几个基础属性:
.image
:图片.rect
:图片显示、碰撞检测等都要用到.pos
:移动对象 & 其图片(你懂的:显示的图片和背后的对象数据几乎是分开管的)def __init__(self)
:初始化游戏对象def draw(self, screen)
:统一管理游戏对象图片显示(首先能少看一堆screen.blit()
, 岂不美哉)def update(self)
:统一管理游戏对象数据属性更新
本文由作者按照
CC BY 4.0
进行授权