事件驱动的python游戏引擎
ppb的Python项目详细描述
追击皮熊
追加PyBube,也称为{{CD1}},是一种教育 资源。最明显是用来教计算机科学的,它可以是 对于任何有助于模拟的主题都是有用的工具。
游戏引擎
在其核心,ppb
提供了许多使其完美的特性
用于电子游戏。GameEngine
本身提供了一个可插入的子系统
添加新功能的体系结构与子类化和
延伸System
。此外,它还包含Scenes
的状态堆栈。
简单的容器,允许您在
简单的方法。
整个系统使用的事件系统的可扩展性与
系统的其他部分。将新值注册到现有事件类型,以及
甚至覆盖默认值。添加新的事件系统非常简单
使用新数据类型调用Engine.signal
。而不是出版商
系统引擎知道自己范围内的所有内容,并且只调用
具有适当回调的对象。最基本的事件是Update
你的处理程序应该与签名匹配
on_update(self, update_event, signal)
。
指导原则
因为ppb
开始是一个非常适合学习的游戏框架,
该项目有几个长期目标:
教育友好型
非技术教育工作者应该在很少的时间 训练。虽然需要一些编程知识,但是 对事物的思考和对事件的反应只允许教育者集中精力 在他们的课上。
惯用的python
基于ppb
构建的项目应该看起来像惯用的python。它也
应该看起来像现代Python。因此,我们经常添加新的语言
功能一出现,就让新用户知道
ppb运行在最新的python上。
面向对象和事件驱动
ppb
游戏是由继承自
EventMixin
。每个对象只有足够的信息来响应
提供的事件,它始终包含当前的BaseScene
。因为
ppb
没有事件的主列表,您可以提供新的事件
只是为了给你的游戏增加更多的粒度控制。
硬件库不可知
因为ppb
强烈地尝试可扩展和可插入,所以
硬件扩展可以为ppb
提供自己的钩子,您可以
几乎无缝地在各种python库之间切换。
乐趣
其中一位维护人员说得最好:
If it’s not fun to use, we should redo it
ppb是关于锉掉粗糙的边缘,以便创造的乐趣和 两者都强调发现。新用户应该能够构建 几小时后的第一场比赛,之后继续探索。
试试看
按标准方法安装ppb:
pip install ppb
ppb
提供了一个run
函数,它使启动单个
屏幕游戏。
要制作一个非常简单的游戏,制作一个目录并添加一个图像文件
对它调用了ship.png
。然后将以下内容添加到python文件中并
运行它。
importppbclassShip(ppb.BaseSprite):defon_update(self,update_event,signal):self.position+=0,-(4*update_event.time_delta)defsetup(scene):scene.add(Ship(pos=(0,3.5)))ppb.run(setup=setup)
兼容性
ppb
保证与python 3.6或更高版本兼容。
参与
最快的参与方式是查看ongoing
discussions.
如果您已经在使用ppb
请随时报告错误,建议
增强功能,或要求新功能。
如果你想贡献代码,一定要阅读相关部分 of贡献.md
更改日志
0.5.0
我们想要一个更小的版本,但是我们做了很多事情 几个月。最重要的是所有的输入事件 在里面!一些很酷的东西包括精灵自动缩放和 在使用事件系统的场景之间移动的新方法。那意味着 旧方法已被正式弃用。
新东西:
- 鼠标按钮事件
- 关键事件
- 在游戏窗口中添加标题
- 基于游戏单元大小的精灵缩放
- 键代码标志
- 新的场景改变了我使用事件系统的机制
更改内容:
- 场景默认值现在是类属性
- 大多数精灵默认值现在是类属性
- 现在可以正确地键入标志
- 如果运行为 是的。
- 修复了框架与 视窗。
- 修正了camera.point_in_viewport函数中的错误
- 默认像素比率现在是64:1(64像素对1游戏单位)
- 新的(更好的)运行功能
- 其他类型提示修复程序
删除的内容:
- 从精灵中移除bb属性