尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

5分钟让GDevelop加载你的自定义行为:游戏引擎扩展开发入门指南

5分钟让GDevelop加载你的自定义行为:游戏引擎扩展开发入门指南 5分钟让GDevelop加载你的自定义行为游戏引擎扩展开发入门指南【免费下载链接】GDevelop Open-source, cross-platform 2D/3D/multiplayer game engine designed for everyone.项目地址: https://gitcode.com/GitHub_Trending/gd/GDevelopGDevelop是一款开源的2D/3D游戏引擎编辑器里看到的所有动作、条件、自定义行为背后都由扩展提供。这篇指南带你完整跑通一次GDevelop扩展开发路径从仓库自带的示例扩展出发在编辑器里验证加载链路并跑通一次游戏预览。掌握这条最小闭环之后你写自己的游戏引擎扩展就有了可靠的参照物。先判断这条路适不适合你GDevelop扩展分两种形态在扩展编辑器里用可视化方式创建大多数场景够用和直接在代码库里用JavaScript/TypeScript编写本文讲的这种。先对号入座适合你你已经会用编辑器做游戏遇到内置对象/行为满足不了的需求比如接一个第三方库、做一个特殊渲染效果想从源码层面理解并扩展引擎能力。适合你你想给官方仓库贡献新扩展需要先熟悉 Extensions 目录 的代码组织方式和 运行时目录 的类结构。不适合你你只是想给项目加个功能而不想碰代码——那种需求直接用编辑器内的扩展编辑器和事件扩展即可不需要走源码路线。一次性准备工作清单下面这些只做一次后面每次开发都不用重来准备项说明路径/备注Git用来拉取仓库任意版本Node.js运行编辑器与构建扩展建议 LTS 版本含 npm代码编辑器推荐带 TypeScript 支持任意扩展源码位置官方扩展都在这里可逐个打开研究Extensions/示例扩展官方基础示例读它比读文档快Extensions/ExampleJsExtension/导入脚本把扩展声明和运行时同步进编辑器newIDE/app/scripts/import-GDJS-Runtime.js权限要求本地只读使用即可无需写权限无预期耗时首次克隆安装约10分钟跑通闭环约5分钟一次性投入跑通最小闭环让示例扩展在编辑器里亮起来闭环目标很具体开发者控制台出现Loaded x JS extensions.且无红色报错预览游戏时示例扩展的动作可用。先克隆仓库并安装编辑器依赖安装会自动下载引擎需要的 libGD.jsgit clone https://gitcode.com/GitHub_Trending/gd/GDevelop cd GDevelop/newIDE/app npm install然后启动编辑器它会一边编译 GDJS 运行时、一边把扩展拷贝进资源目录npm start浏览器打开后按 CtrlShiftJmacOS 为 CmdAltJ打开开发者控制台。看到什么才算成功控制台里有Loaded x JS extensions.这行日志x 是两位数此时在任意场景的事件表里搜索 My Dummy Extension能看到示例扩展注册的条件和动作——说明声明文件 JsExtension.js 被正确加载了。如果你修改了某个扩展文件后发现编辑器没反应可以手动触发一次同步它会把扩展声明与运行时重新构建并复制进编辑器node scripts/import-GDJS-Runtime.js最后做一次端到端验证新建一个场景在事件表里加一条使用示例扩展条件的规则点运行启动预览控制台应出现GDJS Runtime update相关的构建日志且预览正常播放。看到这两处输出最小闭环就算跑通了。![GDevelop扩展事件编辑示例在事件表中组合条件与动作的界面](https://raw.gitcode.com/GitHub_Trending/gd/GDevelop/raw/958396e46a2e47f62aaec8cf67ac3e7ed7a30e76/GDJS/docs/media/GDevelop JavaScript events.png?utm_sourcegitcode_repo_files)常见卡点与快速自检卡点1控制台有红色报错扩展数量不对现象Loaded x JS extensions.的 x 明显偏少或有 JS 报错。可能原因某个JsExtension.js有语法错误或声明里参数个数写错这类错误经常是静默的。验证方式点开报错看第一个堆栈对照 示例扩展的声明写法逐行核对addParameter与setFunctionName是否匹配改完按 CtrlR 重载编辑器。卡点2改了扩展文件编辑器毫无反应现象控制台没有新的GDJS Runtime update日志。可能原因自动导入被关掉了或修改的是需要重载才生效的声明文件。验证方式手动执行node scripts/import-GDJS-Runtime.js日志出现即说明同步链路是通的问题出在自动监听。卡点3编辑器能打开但点运行预览空白现象编辑器界面正常游戏预览不加载。可能原因首次构建未完成就去点运行或 libGD.js 还在下载。验证方式回到npm start的终端确认构建日志走完再刷新预览不要中途重启该进程。卡点4动作执行了但参数位置不对现象事件能触发但对象拿到的参数是乱的。可能原因声明时的参数顺序与函数实参不一致这是官方文档明确警告的静默bug来源。验证方式打开 示例工具函数文件对照myConditionFunction的参数与声明处的addParameter顺序确认一一对应。从能跑到能继续跑通闭环后按这个顺序往下走读懂示例扩展的两半声明在 JsExtension.js告诉编辑器有什么实现在 dummyruntimebehavior.ts 和 examplejsextensiontools.ts告诉引擎怎么做。自定义行为类继承gdjs.RuntimeBehavior重点看doStepPreEvents/doStepPostEvents两个每帧回调。接进真实场景把示例扩展的条件/动作组合进自己的游戏项目跑预览验证再参考 PlatformBehavior 扩展 这种带完整属性、测试和文档的成熟扩展看生产级代码怎么组织。提交社区想贡献的话先在自己的 fork 里独立成扩展目录并保证npm test通过再向官方仓库提 Pull RequestGDJS 运行时文档 是写扩展函数时最常用的 API 参考。现在就可以先执行上面第三节的三步命令把控制台里的那行Loaded x JS extensions.找出来——找到它你的扩展开发环境就准备好了。【免费下载链接】GDevelop Open-source, cross-platform 2D/3D/multiplayer game engine designed for everyone.项目地址: https://gitcode.com/GitHub_Trending/gd/GDevelop创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表