基于raylib的pygame zero类api三维游戏编程
richlib的Python项目详细描述
richlib
raylib的一个简化的api,用于教育和使初学者能够创建3d游戏。
当前状态:正在工作,但未经测试的alpha,api可能会更改。
使用
richlib只是raylib python cffi之上的几个类。导入richlib后,将自动获取所有raylib.static 和raylib.pyray 您可以复制任何找到的raylib python示例代码。如果你想像raylib一样使用richlib的类,你可以。
使用richlib的常规方法不是编写自己的主游戏循环。相反,您可以设置一些变量来告诉richlib您想要什么 您的游戏是:
from richlib import *
WIDTH=800
HEIGHT=640
CAMERA=rl.CAMERA_FIRST_PERSON
DATA_DIR="examples/models/resources/models/"
cube = Cube((0, 10, 0), (10, 20, 10), 'blue')
然后定义一些特殊命名的方法:
def draw():
clear()
cube.draw()
def update():
cube.x = cube.x + 1
if cube.x > 100:
cube.x = -100
然后告诉richlib在其游戏循环中运行您的方法:
run()
与pygame zero的区别
我们在mu编辑器中没有像pygame zero那样的特殊模式,因此有必要在 每一个程序,最后是一个
run()
行。底层api raylib不像pygame那样面向对象。richlib添加的内容是面向对象的,但是 可能注意到没有适当的
screen
对象等价物,因为raylib没有。3d游戏本质上比2d更复杂,例如,对于2d程序员来说,没有等价的摄像机对象 担心。
为了尽可能地减轻(3)的影响,我们做了一些自动化的工作,您可能希望在PyGameZero中手动完成这些工作。