FEATURED · 精选文章

零基础快速上手 Godot 游戏开发:godot-demo-projects 官方演示案例完整指南

发布时间 / 2026/9/18 2:31:53
来源 / 创域科博编辑部
栏目 / 资讯中心
零基础快速上手 Godot 游戏开发:godot-demo-projects 官方演示案例完整指南 零基础快速上手 Godot 游戏开发godot-demo-projects 官方演示案例完整指南【免费下载链接】godot-demo-projectsDemonstration and Template Projects项目地址: https://gitcode.com/GitHub_Trending/go/godot-demo-projectsgodot-demo-projects 是 Godot 官方维护的演示项目集合40 多个可直接运行的 2D/3D 实战案例。对零基础开发者来说不用从零搭项目打开场景就能跑照着改几个变量一天就能摸到输入、物理、寻路的门道。项目速览clone 下来怎么跑打开终端一行命令拉下来git clone https://gitcode.com/GitHub_Trending/go/godot-demo-projects用 Godot 打开任意一个子目录里的 project.godot点运行按钮画面就出来了——每个子项目都是独立的小游戏互不干扰。想玩 2D 就去 2d/ 目录挑想做 3D 就去 3d/ 目录挑。建议按下面这条路线走先 2D 入门再玩物理关卡然后进 3D最后调画质、学寻路。第 1 站2D 入门3 分钟跑通第一个 2D 案例跑起来先看到什么运行 2d/dodge_the_creeps/ 后一个笑脸角色站在屏幕中央四周的怪物不断朝你冲过来右上角分数随存活时间上涨。背后的一个原理玩家本体是一个 Area2D每帧读取按键算出速度向量直接累加到坐标上。怪物由 Timer 定时生成玩家的碰撞体一碰到怪物就发信号分数和结束逻辑全靠这条信号串起来。值得抄的一段代码player.gd输入到移动的全部核心func _process(delta): var velocity Vector2.ZERO if Input.is_action_pressed(move_right): velocity.x 1 if Input.is_action_pressed(move_left): velocity.x - 1 if velocity.length() 0: velocity velocity.normalized() * speed position velocity * delta改哪个变量效果最明显export var speed 400改成 800 你会发现自己快过怪物的刷新改到 100 则基本只能站着挨打。动手改一改打开 main.gd把_on_MobTimer_timeout里怪物的速度区间randf_range(150.0, 250.0)改成randf_range(300.0, 400.0)再运行——难度瞬间翻倍10 分钟内就能看到分数曲线变化。第 2 站物理关卡重力、摩擦与跳跃手感从哪来跑起来先看到什么进入 2d/physics_platformer/ 后一个小人在平台上跑、跳、放子弹站在跷跷板上还能被带着走。背后的一个原理这个玩家不是 CharacterBody2D而是 RigidBody2D靠重力天然往下掉。跳跃手感不是调一个跳跃力就能搞定的而是走/停加速度、跳跃初速度、空中减速这一组参数共同作用的结果。值得抄的一段代码player.gd手感参数集中在这几个常量const WALK_ACCEL 1000.0 const WALK_MAX_VELOCITY 200.0 const JUMP_VELOCITY 380.0 const STOP_JUMP_FORCE 450.0 # 落地且按下跳跃时 if not jumping and jump: velocity.y -JUMP_VELOCITY jumping true改哪个变量效果最明显JUMP_VELOCITY 380.0。往下调到 200 变成小碎跳调到 600 直接蹦出关卡这是手感最直观的来源。动手改一改把WALK_ACCEL从 1000 降到 300你会发现起步变得黏糊、落地刹不住车——这正是平台游戏里摩擦力手感的来源不用额外写摩擦逻辑。第 3 站3D 上手移动、相机与踩踏判定一次看全跑起来先看到什么打开 3d/squash_the_creeps/角色在地台上移动小怪物从四周一窝蜂地追你跳起来踩中怪物它被压扁并加分。背后的一个原理玩家是 CharacterBody3D每帧写入 velocity 再调用 move_and_slide()重力每帧累加保证始终贴着地面。相机挂在跟随节点下跟着玩家转。踩踏不是靠碰到就死而是检查碰撞法线朝上才判定为踩在头顶。值得抄的一段代码Player.gd踩踏判定的关键几行for index in range(get_slide_collision_count()): var collision get_slide_collision(index) if collision.get_collider().is_in_group(mob): if Vector3.UP.dot(collision.get_normal()) 0.1: collision.get_collider().squash() velocity.y bounce_impulse break改哪个变量效果最明显脚本顶部的export var jump_impulse 20提到 30 可以连续踩跳串烧怪物降到 12 则基本只能一次跳一个高度。动手改一改把fall_acceleration 75改成 300角色下落会像石头一样砸地空中转向几乎无效——这就是重力感的 3D 版调节旋钮。2D/3D 节点选型速查你想实现的效果该用哪个节点去哪站抄代码上手难度平面自由移动、不用物理Area2D 每帧改 position第 1 站★☆☆平台跳跃、贴地行走RigidBody2D 或 CharacterBody2D第 2 站★★☆3D 角色移动 跳跃CharacterBody3D move_and_slide()第 3 站★★☆碰撞触发计分/死亡Area2D 的 body_entered 信号第 1、3 站★☆☆第 4 站画质调优渲染模式和抗锯齿怎么选跑起来先看到什么打开 3d/antialiasing/一个 3D 场景配上右侧控制面板和左上角实时 FPS切不同抗锯齿模式时画面边缘的锯齿变化肉眼可见。背后的一个原理抗锯齿都挂在 viewport 上一行属性就能切换代价各不相同MSAA 最干净但最吃性能TAA 平滑一切却可能拖影屏幕空间 AAFXAA/SMAA快但会轻微糊掉全屏。项目用 FPS 标签实时显示每种模式的真实开销。值得抄的一段代码anti_aliasing.gd切换入口都在这里# 多采样抗锯齿质量最高最慢 get_viewport().msaa_3d Viewport.MSAA_4X # 时间抗锯齿全面平滑可能有拖影 get_viewport().use_taa true # 屏幕空间抗锯齿快但整体略糊 get_viewport().screen_space_aa Viewport.SCREEN_SPACE_AA_SMAA改哪个变量效果最明显右侧Render Scale滑块背后的get_viewport().scaling_3d_scale拉到 50% 帧数立刻翻倍再配合 FSR 放大是低配机器的首选组合。动手改一改在 Compatibility 渲染模式下运行同一项目对比 MSAA 选项自动消失的逻辑脚本里is_compatibility分支10 分钟理解渲染方法决定可用画质选项这件事。渲染模式与抗锯齿速查想要的画面效果对应设置代价适合场景边缘最干净MSAA 4X/8X帧数掉最多高端机、演示整体平滑无颗粒TAA运动中可能拖影动态镜头便宜够用FXAA / SMAA全屏略糊中低端机直接省一半算力Render Scale 50% FSR分辨率减半低配兜底第 5 站导航寻路目标点怎么算、路线怎么画跑起来先看到什么运行 2d/navigation_astar/一张太空风格的网格地图左键点击任意空地角色就沿着白色轨迹绕开障碍走过去右键可以直接传送。背后的一个原理地图用 AStarGrid2D 表示把每个已铺瓦片的格子标成实心不可走寻路时算出整条路径点列表。角色并不理解地图它只是一帧一帧走向路径上的下一个点到了就取下一个走完回 IDLE 状态。值得抄的一段代码pathfind_astar.gd建图与取路核心var _astar : AStarGrid2D.new() _astar.region Rect2i(0, 0, 18, 10) for pos in get_used_cells(): _astar.set_point_solid(pos) _astar.update() _path _astar.get_point_path(start, end)改哪个变量效果最明显character.gd 里的speed: float 200.0降到 50 角色慢吞吞地挪升到 500 则像瞬移一样贴着路线飞。动手改一改把 character.gd 里的ARRIVE_DISTANCE: float 10.0改成 60角色会在离终点很远时就判定到达提前停住——这个参数就是寻路角色刹不住车的常见元凶。学完这一圈你能做什么跑完 5 站你手上已经有了四样东西一套输入 → 移动 → 碰撞 → 计分的完整 2D 循环、一组调平台手感的常量表、一个 3D 角色移动 踩踏判定的模板以及一套抗锯齿和寻路的现成代码。这些拼起来一个可玩的原型就出来了。下一步路线2D 方向把 dodge_the_creeps 加血条和道具读完 2d/ 里的 platformer 和 role_playing_game 补全战斗逻辑。3D 方向照着 squash_the_creeps 给怪物加状态机参考 3d/ 里的 voxel 和 platformer 做完整关卡。性能方向在 antialiasing 项目里把 Render Scale、FSR、V-Sync 三档组合跑一遍记下每种组合的 FPS 差异。相关资源官方文档与项目说明README.md全部 2D 案例2d/全部 3D 案例3d/C# 版本示例mono/【免费下载链接】godot-demo-projectsDemonstration and Template Projects项目地址: https://gitcode.com/GitHub_Trending/go/godot-demo-projects创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻