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

资讯详情

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

Godot演示实战:5个可玩的2D场景,3分钟跑通再读源码

Godot演示实战:5个可玩的2D场景,3分钟跑通再读源码 Godot演示实战5个可玩的2D场景3分钟跑通再读源码【免费下载链接】godot-demo-projectsDemonstration and Template Projects项目地址: https://gitcode.com/GitHub_Trending/go/godot-demo-projects想自己做游戏是不是先被引擎配置和框架选型劝退了Godot演示项目库 godot-demo-projects 官方收录了几十个可直接运行的示例每一个都是一个完整的小游戏。读完这篇你能在3分钟跑通第一个演示顺便看懂角色跟手、物体被推、NPC 会走路这几件事各是怎么实现的。先跑起来3分钟启动演示不用从零搭工程任何一个含project.godot文件的文件夹就是一个可运行的演示克隆仓库git clone https://gitcode.com/GitHub_Trending/go/godot-demo-projects打开 Godot 项目管理器点击Scan选中克隆下来的根目录在列表里挑一个演示如 2d/dodge_the_creeps/双击进入编辑器按 F5看它跑起来看到画面亮起、游戏开始的那一刻后面的事就只是弄明白它为什么这样跑。 做出会跟手的2D角色它能干嘛玩过手机上躲子弹的小游戏吗就是这个——四方向移动角色、避开不断出现的敌人撑得越久分数越高。背后原理一句话每帧读按键→合成速度向量→累加到角色坐标命中区碰到敌人就发一个被撞信号本轮结束。上手体验打开 2d/dodge_the_creeps/ 运行按方向键移动留意右上角分数每秒加一被撞后角色消失并弹出结算这就是它的全部反馈链路。看一眼源码想看实现的话打开2d/dodge_the_creeps/main.gd就够了_on_MobTimer_timeout函数就是完整的生成一个敌人逻辑在路径上取随机点、定方向、定速度实例化进场景。⚖️ 做出会被推来推去的物体它能干嘛一个能压跷跷板、推箱子的平台跳跃关你甚至能站在巡逻敌人身上走。做物理互动类物体照它抄就行。背后原理这里玩家和敌人都是 RigidBody2D刚体受重力和碰撞驱动、会推也会被撞的物体。引擎负责算碰撞你的代码只负责施力输入→改速度→引擎把周围一切推明白。上手体验打开 2d/physics_platformer/ 运行先找到关卡里的跷跷板踩上去看另一端翘起再试着顶一下巡逻敌人感受重量感和纯代码移动的区别。看一眼源码想看实现的话打开2d/physics_platformer/player/目录就够了核心是全部移动都写在_integrate_forces回调里——这是刚体唯一允许被推的时机。️ 做出一点就会走的NPC它能干嘛点地图任意位置角色自动绕开障碍走过去。巡逻、追踪这类基础 AI 行为都从这里开始。背后原理输入点击坐标→ NavigationAgent2D 沿预先画好的可走区域求路 → 角色每帧朝路径上下一点走绕路和避障全由导航系统代劳你一行碰撞逻辑都不用写。上手体验打开 2d/navigation/ 运行点地图不同位置看角色如何绕行演示开着调试显示能直接看到它走的路。看一眼源码想看实现的话打开2d/navigation/character.gd就够了set_movement_target是唯一入口剩下就是每帧取下一路径点。✨ 给精灵贴上百种特效它能干嘛同一个角色图能切出水波、溶解、描边、故障风等十几种效果是 2D 视觉风格的滤镜库。背后原理每个特效是一段 shader着色器告诉 GPU 每个像素怎么着色的小程序绑定到同一个精灵上换文件或调参数效果实时切换。上手体验打开 2d/sprite_shaders/ 运行逐个切换按钮对比同一张图在不同效果下的差异心里就有哪些效果可以搬进自己项目的判断了。看一眼源码2d/sprite_shaders/shaders/目录就是全部特效文件任取一个.gdshader打开就能读懂它的着色逻辑。️ 同机双人和联机对战Pong的两副面孔它能干嘛同一个乒乓球游戏一版双人同机对战一版开两条网络连接把输入系统和网络同步的区别看得清清楚楚。背后原理游戏规则是共享的一层同机版只多一套按键分配联机版再多一层——把己方挡板移动发给对方双方各自本地推演球的位置。上手体验先运行 2d/pong/ 体验 WASD 加方向键的同机对战再打开 networking/multiplayer_pong/ 起两个实例观察大厅配对和双方画面同步。看一眼源码联机版的共享规则都收在logic/目录的四个脚本里拿它和 2d/pong 的同名脚本对照联网要多写什么一目了然。三种角色移动到底选哪种第一次写会动的角色最容易纠结用哪种方案上面三个演示正好是三套答案演示移动驱动方式手感特点适合场景dodge_the_creeps每帧直接改坐标最可控不参与物理躲避、弹幕类休闲游戏physics_platformer推动刚体速度有重量推得动别人跷跷板、车辆、可推动物体navigation给目标点代理寻路不写绕路逻辑NPC巡逻、追逐避坑清单角色速度忽快忽慢、低帧率下明显变慢原因是移动量没乘 delta每帧流逝的时间。解决统一写成位置加速度乘delta的标准节奏。刚体推不动、或一改位置就乱飞原因是在错误时机改速度或直接修改了刚体坐标。解决把施力逻辑全部放进_integrate_forces只改速度不改位置。NPC点到目标后原地抖动或离得老远就停下原因是代理的到达判定距离设置过大离得近就算到了。解决把这个距离调小到与角色速度匹配。双人同机时两边按键互相串原因是输入映射里只定义了一套动作。解决在项目设置里为每位玩家各定义一套动作名各自脚本只认自己那套。收尾先做哪个、再做哪个建议先把 2d/dodge_the_creeps/ 作为完整游戏拆开看懂再进 2d/finite_state_machine/ 学习用状态机管理跳跃、攻击这类复杂角色行为。这个仓库就是 Godot 开发的可运行样本间概念没看懂就找对应演示跑一遍、再翻源码是熟悉引擎最快的路。【免费下载链接】godot-demo-projectsDemonstration and Template Projects项目地址: https://gitcode.com/GitHub_Trending/go/godot-demo-projects创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表