基于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的区别

  1. 我们在mu编辑器中没有像pygame zero那样的特殊模式,因此有必要在 每一个程序,最后是一个run()行。

  2. 底层api raylib不像pygame那样面向对象。richlib添加的内容是面向对象的,但是 可能注意到没有适当的screen对象等价物,因为raylib没有。

  3. 3d游戏本质上比2d更复杂,例如,对于2d程序员来说,没有等价的摄像机对象 担心。

  4. 为了尽可能地减轻(3)的影响,我们做了一些自动化的工作,您可能希望在PyGameZero中手动完成这些工作。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用prepared语句在oracle中插入日期   对点具有双重值的java   使用多个通配符的java请求映射   java Springboot为什么要设置springbootstartertomcat   除了对JavaBean的请求之外,还使用servletContext的servlet   java如何清除OCSID。返回到池的连接时的CLIENTID JDBC客户端信息属性   将整型数组转换为光栅Java   java使用对象引用作为互斥锁   java为什么在编程语言中使用sin函数返回奇怪的sin值不像计算器   java如何将JButton链接到对象并调用相关方法   php用Java发送POST数据   导航属性的java模拟加载   java多个活动错误Android试图对空对象引用调用虚拟方法“”   java Android更改ActionBar文本颜色   如何使用带有java反射且不带开关的parant引用创建子类