碎言博客

“编学编玩”用Pygame编写游戏(6)PY_RPG 一个pygame的简单封装。

J.sky 2017-12-28 21:41:37 pygame

为什么要封装?

pygame写起游戏都是函数式编写,对于一些简单的小游戏或许可以应付,随着游戏内容的增加,我们不可能只在一个.py文件中写下所有的游戏代码,这个时候,我们应该考虑对游戏中组件及对象进行封装,用面向对象的方式来进行游戏代码的编写。

一些具体的封装内容

游戏中的关键词,假设游戏没有条件判断,那么游戏从头运行到尾就是一部电影。 这样的话,我们定义一些游戏的基本对象:

定义渲染器

渲染器定义为一个游戏的APP,他应该是这个游戏的最外层,可以定义他的,分辨率,标题,刷新频率。 如果游戏中有精灵贯穿全局(比如RPG游戏中的主要角色),这种精灵角色他不属于某个游戏片段,这样他应该存在于这个游戏app中。

定义游戏片段

一个gameApp中,至少得有一个游戏片段,游戏片段包括三个主要方法:

draw() update() handle_event()

这三个方法分别对应:

当我们继承新建游戏片段类的时候,需要根据自己的需求重写这三个方法。

如何使用PY_RPG?

app = GameApp()#创建游戏
appscreen = app.screen#获取渲染器
app.scenes.append(MainScene(appscreen))#创建游戏菜单
app.scenes.append(TestScene(appscreen))#创建游戏内容
app.scenes.append(GameOverScene(appscreen))#游戏结束画面
app.run() #游戏开始

根据需要创建并重写上边的三个类,然后创建游戏就可以了,现在这样看来,游戏的创建是不是很有层次了?

这个框架还没有封装完毕,我还会继续的,之后的游戏制作都要从这个框架上弄起了,初步还要写几个完整的小游戏例子。

以下为游戏效果图,建议下载相关代码跑一下,有问题可以留言给我。

输入图片说明

输入图片说明

输入图片说明

本文源码下载

请git clone My_pygame下所有代码,以免造成游戏跑不起来的情况。本例源文件在PY_RPG目录下

发现错误?想参与编辑? 在 GitHub 上编辑此页!

如果您有什么问题,欢迎加入Python/Javascript学习讨论群询问

Python/Javascript学习QQ群号:217840699