伟大的 C 库 raylib 的 Python 绑定
项目描述
pyraylib
伟大的C库raylib的 python 绑定。该库围绕 raylib 的 struct 接口提供面向对象的包装器。
入门
先决条件
pyraylib在其源代码中使用类型注释,因此需要支持它的 Python 版本。
某些 Python 版本可能没有enum和/或类型模块作为标准库的一部分,这是必需的。这些是由 pip 自动安装的。
安装
安装pyraylib最简单的方法是使用 pip install 命令:
根据您安装的系统和 python 版本,命令可能是:
pip install pyraylib
或者
python -m pip install pyraylib
或(安装了多个版本的 Python3.7 启动器)
py-3.x-32 -m pip install pyraylib
请注意,测试的最低 Python 版本是 3.4。请让我知道您是否能够在 Python33 中运行它。
pyraylib附带适用于 Windows、Mac 和 Linux 的 32 位二进制文件,但您不需要使用这些文件。如果您有自定义raylib dll、dylib或其他二进制文件,请确保设置一个 PATH 指示它所在的目录:
import os
# set the path before raylib is imported.
os.environ["RAYLIB_PATH"] = "path/to/the/binary"
import pyraylib
# let the fun begin.
您可以设置"__file__"为值"RAYLIB_PATH",pyraylib将在包目录中搜索二进制文件:
# bynary file is wherever the package is located.
os.environ["RAYLIB_PATH"] = "__file__"
"__main__"也可以设置为在启动脚本所在的项目目录中查找二进制文件:
# binary file is in the same dir as this py file.
os.environ["RAYLIB_BIN_PATH"] = "__main__"
# ...
if __name__ == "__main__":
# run the game
# ...
确保相应平台的 bin 文件名是
raylib.dll,libraylib.3.7.0.dylib或libraylib.so.
使用 pyraylib
使用 pyraylib 就这么简单:
import pyraylib
from pyraylib.colors import (
LIGHTGRAY,
RAYWHITE
)
# Initialization
SCREEN_WIDTH, SCREEN_HEIGHT = 800, 450
window = pyraylib.Window((SCREEN_WIDTH, SCREEN_HEIGHT), 'pyraylib [core] example - basic window')
# Set our game to run at 60 frames-per-second
window.set_fps(60)
# Main game loop
while window.is_open(): # Detect window close button or ESC key
# Update
# TODO: Update your variables here
# Draw
window.begin_drawing()
window.clear_background(RAYWHITE)
pyraylib.draw_text('Congrats! You created your first window!', 190, 200, 20, LIGHTGRAY)
window.end_drawing()
# Close window and OpenGL context
window.close()
该examples/目录包含更多示例。
测试
pyraylib没有测试代码,但是你可以运行示例目录中的示例。
raylib vs pyraylib
以下是raylib和pyraylib之间的用法差异。请注意,尽管这些差异正在努力使pyraylib尽可能像 pythonic,但可能会在没有通知的情况下发生更改。
常数值
所有#define的 C 都被翻译成 Python 的“常量”。Enums 被翻译成 Python enums。
结构
通常,所有结构都继承自ctypes.Structure类。目前,构造函数(向量除外)需要确切的参数类型,因此ints 不能在需要floats 的地方传递(尽管可以省略参数)。
所有结构都已__str__()实现,因此它们具有非常基本的文本表示:
贡献
欢迎任何形式的贡献!
作者
执照
pyraylib(和raylib)在未经修改的 zlib/libpng 许可证下获得许可,这是一个 OSI 认证的类似 BSD 的许可证,允许与闭源软件进行静态链接。