GDevelop 扩展开发完整指南:5分钟从零做出你的第一个自定义行为
GDevelop 扩展开发完整指南5分钟从零做出你的第一个自定义行为【免费下载链接】GDevelop Open-source, cross-platform 2D/3D/multiplayer game engine designed for everyone.项目地址: https://gitcode.com/GitHub_Trending/gd/GDevelopGDevelop 是一款开源跨平台游戏引擎让你不写代码也能做出 2D、3D 和多人游戏而它的扩展系统是功能可扩展的关键——往引擎里注入新的对象、行为和事件。看完你就能在本地跑起 GDevelop 编辑器看懂 GDevelop 扩展声明 运行时的两段式结构照着示例扩展的套路写出第一个自定义行为并直接在编辑器里看到效果。它到底能帮你干什么先解释一个词扩展Extension就是游戏里的功能包可以往游戏加一个对象、一种行为、一个特效或一组事件动作。没有平台跳跃行为这个扩展你要自己写碰撞、重力、跳跃手感每个项目都重写一遍有了它把行为拖到对象上角色立刻能跑能跳。没有自定义扩展你只能用引擎自带的玩法想法和现有功能对不上时只能妥协有了它你能把自己的逻辑写进引擎打包分享给任何人。只会在编辑器里点按钮你碰不到引擎内部读懂扩展源码你能看到每个行为背后就是一个 TypeScript 类逻辑逐帧可改。GDevelop 编辑器主界面正在编辑游戏关卡5分钟跑起来从克隆到看到效果先装好 Git 和 Node.js然后按这条时间线走拉取代码进入编辑器目录git clone https://gitcode.com/GitHub_Trending/gd/GDevelop cd GDevelop/newIDE/app安装依赖编辑器是个 React 应用首次安装稍慢npm install启动让编辑器跑在浏览器里npm start启动成功后浏览器会打开 GDevelop 编辑器开发者控制台打印Loaded x JS extensions.说明 Extensions/ 目录下的 JS 扩展都加载成功了。这就是你后面开发扩展的工作台。核心能力拆解从能跑到能改一个 GDevelop 扩展就是两份文件一份声明告诉编辑器你有什么一份运行时实现告诉引擎你具体怎么干。声明文件JsExtension.js 管长什么样它负责扩展的元信息名字、作者、属性列表以及在事件编辑器里露出的动作和条件。这是最小骨架外层module.exports包裹省略const extension new gd.PlatformExtension(); extension.setExtensionInformation(MyFirstExtension, _(我的第一个扩展), _(...), 你的名字, MIT); extension.addAction(SetSpeed, _(设置速度), _(设置移动速度), _(...), ) .addParameter(expression, _(速度)) .getCodeExtraInformation() .setFunctionName(gdjs.evtTools.myFirstExtension.setSpeed);到这里你已经能让事件编辑器里出现一个属于你的动作条目了只是它还没逻辑。完整可抄的作业在 示例扩展源码。运行时行为继承 gdjs.RuntimeBehavior 管每帧发生什么行为是挂在对象上的逻辑单元基类是gdjs.RuntimeBehavior定义在 GDJS 运行时gdjs.RuntimeBehavior里能找到所有生命周期钩子。最小骨架照示例扩展抄class MyBehaviorRuntime extends gdjs.RuntimeBehavior { constructor(instanceContainer, behaviorData, owner) { super(instanceContainer, behaviorData, owner); } doStepPreEvents(instanceContainer) { this.owner.setX(this.owner.getX() 5); } } gdjs.registerBehavior(MyFirstExtension::MyBehavior, MyBehaviorRuntime);到这里你已经能把这个行为挂到编辑器里任意对象上运行时doStepPreEvents会每帧执行一次registerBehavior那行负责让引擎认识它。一个带业务味的小场景碰到金币加 10 分需求一句话玩家对象碰到金币时分数变量加 10。涉及三块声明文件注册条件、运行时文件实现判定逻辑、事件编辑器把它们拼起来。关键 3 步在JsExtension.js里用addCondition声明一个碰到了金币条件用setFunctionName把它绑到一个工具函数上声明和实现就这样对上了。在对应的.ts文件里实现这个函数核心就一行碰撞判断gdjs.evtTools.myFirstExtension.coinTouched function(otherObject, coinObject) { return otherObject.overlapsObject(coinObject); };打开事件编辑器写上如果 [我的扩展碰到了金币]那么 [分数变量加 10]点运行预览。引擎的 watcher 会自动重新构建运行时控制台会打印GDJS Runtime update你不用手动跑构建改完即测。GDevelop 事件系统用于编写游戏逻辑踩坑速查表症状扩展没出现在编辑器里控制台没有Loaded x JS extensions.根因文件名没叫JsExtension.js或扩展目录没有直接放在仓库根目录的Extensions/下30秒修复核对文件名和目录层级再刷新编辑器。症状改了JsExtension.js保存后没生效根因声明文件的变更需要手动刷新才会被编辑器重新读取30秒修复在开发者控制台按 CtrlRMac 是 CmdR重载。症状行为 TS 代码改了预览里还是老逻辑根因预览用的是上一次构建的运行时30秒修复重新运行一次预览并确认控制台出现GDJS Runtime update。症状Linux 上报Error: watch ... ENOSPC根因系统 inotify 文件监视数量上限太低30秒修复终端执行sudo sysctl fs.inotify.max_user_watches524288。症状动作静默无效果也不报错根因addParameter声明的参数个数和函数实际形参对不上官方文档把这称作静默 bug30秒修复逐一对齐声明参数与函数签名再刷新。完整的分步教程在 扩展开发文档想抄作业也可以直接翻 PlatformBehavior、TweenBehavior 这些官方扩展的源码。能跑起编辑器你已经迈过了最难的门槛。下一步很具体Fork 一份仓库在Extensions/下照着 示例扩展 建一个自己的目录把doStepPreEvents里的 5改成 10在预览里亲眼看对象提速然后给它接上你自己的分数变量。用 GDevelop 引擎制作的游戏作品合集【免费下载链接】GDevelop Open-source, cross-platform 2D/3D/multiplayer game engine designed for everyone.项目地址: https://gitcode.com/GitHub_Trending/gd/GDevelop创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

HDMI或者DP接口中HDCP2.x流程分析

HDMI或者DP接口中HDCP2.x流程分析

一、read version i2c_read(0x37, 0x50, 1) 通过i2c读取1字节数据,注意dev_addr0x37和offset_addr0x50value 0x4,表示支持HDCP2.2或者更高版本 二、AKE(Authentication and Key Exchange) 用私钥加密信息的过程,我们称之为:数字签…

2026/11/13 15:56:54 阅读更多 →
Apktool 反编译与重打包 APK:新手 3 分钟跑通指南

Apktool 反编译与重打包 APK:新手 3 分钟跑通指南

Apktool 反编译与重打包 APK:新手 3 分钟跑通指南 【免费下载链接】Apktool A tool for reverse engineering Android apk files 项目地址: https://gitcode.com/GitHub_Trending/ap/Apktool 它解决什么问题 拿到一个 APK,想看看里面的界面长什么…

2026/11/7 22:41:56 阅读更多 →
Astro + Vue 集成实战:framework-vue 示例项目全流程解析

Astro + Vue 集成实战:framework-vue 示例项目全流程解析

Astro Vue 集成实战:framework-vue 示例项目全流程解析 【免费下载链接】astro The web framework for content-driven websites. ⭐️ Star to support our work! 项目地址: https://gitcode.com/GitHub_Trending/as/astro 本篇以 Astro 官方示例项目 fram…

2026/10/25 8:52:49 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/13 5:13:25 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/13 5:13:25 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/13 5:13:25 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/12 18:22:26 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/12 18:22:25 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/13 5:13:25 阅读更多 →

日新闻

周新闻

月新闻