这个项目能做什么

Godot-Python 是一个旨在将 Python 语言支持作为脚本模块带入 Godot 游戏引擎的项目。它允许开发者使用 Python 而非 GDScript 编写游戏脚本,并利用 Python 的生态系统和语法。 主要特性: - 在 Godot 中使用 Python 脚本:使用继承自 Godot 节点(例如 Node2D、KinematicBody)的 Python 类,并通过 @exposed 装饰器将其暴露给引擎。 - 导出:使用 export(type) 定义导出的特性和属性,以便与 Godot 的检查器集成。 - 完整 API 访问:通过生成的绑定访问 Godot API(例如 Vector2、ResourceLoader)。 - 辅助类:未暴露的 Python 类可在内部用于逻辑。 - 构建系统:基于 Scons、Cython 和 Jinja2,支持 Linux、Windows 和 macOS。 - 测试和示例:包含基于 pytest 的测试和一个 Pong 示例项目。 当前状态:项目正在进行大规模重构以支持 Godot 4,而 Godot 4 与当前代码库不兼容。开发在 godot4-meson 分支上进行。master 分支面向 Godot 3.x。 安装:用户可以通过 Godot 资产库安装、从资产库网站下载,或从发布页面获取特定平台的构建版本。 用法示例: from godot import exposed, export, Vector2, Node2D, ResourceLoader @exposed class Player(Node2D): name = export(str) @export(int) @property def age(self): return self._age @age.setter def age(self, value): self._age = value def talk(self, msg): print(f"I'm saying {msg}") def _ready(self): self._age = 42 print(self.get_name()) def _process(self, delta): self.position += Vector2(10, 10) * delta 从源码构建:需要 Python 3.7 或更高版本和 C 编译器。步骤包括初始化用于 GDNative 头文件的子模块、创建虚拟环境、安装依赖,以及使用特定平台命令运行 Scons(例如 scons platform=x11-64 release)。 FAQ 要点: - 导出项目:需要手动导出;将 Python 环境和 Godot 二进制文件复制到发布文件夹。 - 使用 Python 包:通过 ensurepip 安装 pip,然后使用 pip install 将包添加到嵌入式解释器。 - 使用 PyCharm 调试:重命名 Godot 二进制文件以包含 python,并使用 “Attach to Local Process”。 - 自动加载脚本:在 project.godot 的 [autoload] 和 [gdnative] 下配置。 - PoolArrays:使用 arr.raw_access() 上下文管理器获得高效访问,但需注意内存安全。 注意:该项目针对 Godot 3 的部分未得到积极维护,用户应查看 godot4-meson 分支以获取未来更新。