首页/ 第 13 章 · 2D 游戏开发/ 第 210 课
LESSON 210 · 2D 游戏开发

2D 平台游戏(跑跳完整版)

2D 平台游戏完成。下一课做 2D 敌人 AI。

⏱ 约 18 分钟📊 难度:入门🗂 第 13 章 · 2D 游戏开发📍 第 210 / 300 课
课程进度
210 / 300

🎯本节学习目标

  • 整合角色能力
  • 搭建平台关卡
  • 实现死亡重生

🚀课程导读

把前面 2D 物理能力整合成一个可玩的平台关卡:跑、跳、踩平台、掉坑重生。2D 核心体验!

搭建关卡

平台 + 地面 + 边界。

  1. 【地面】创建空对象 Ground,加多个 BoxCollider2D(或用 Tilemap,第 217 课),放一排矩形平台。
  2. 【层级】所有地面设 Ground 层(配合射线/检测)。
  3. 【平台外观】用精灵图或纯色 Sprite(一张白色方块图染色)。
  4. 【平台布局】设计高低平台:跳跃可达高度(跳跃高度≈2.5 单位,平台间隔别超)。
  5. 【边界】左右加隐形墙(薄 Collider)防角色走出。
  6. 【死区】场景下方加一个 Trigger(KillZone):角色掉下去触发重生。
  7. 【重生点】角色初始位置记作重生点。
  8. 【背景】加背景精灵(第 213 课视差可后加)。
  9. 【注意】平台“厚薄”决定跳跃判定,碰撞体贴精灵。
  10. 【完成】一个可跳的平台关骨架。
💡
平台关设计:平台高度差 ≤ 跳跃高度,配合死区+重生才“完整”。

角色整合与重生

让关卡“能玩”。

  1. 【角色】用第 205 课的完整角色控制(移动+跳跃+翻转)。
  2. 【重生脚本】
  3. public Transform spawnPoint;
  4. void OnTriggerEnter2D(Collider2D other) {
  5. if (other.CompareTag("KillZone")) Respawn();
  6. }
  7. void Respawn() {
  8. transform.position = spawnPoint.position;
  9. rb.velocity = Vector2.zero;
  10. hp = maxHp; // 重置
  11. }
  12. 【死亡动画】可选:死亡粒子/红闪(第 196-197 课)。
  13. 【场景管理】若做多关卡:重生/切场景逻辑(第 235 课)。
  14. 【调试】给平台标上“跳跃难度”(1 级低、2 级高)。
  15. 【测试】完整跑跳流程:走、跳、掉坑、重生。
  16. 【手感调优】跳 8-10、走 5-8、重力 1,多试几次找舒服的。
  17. 【完成】你的第一个可玩平台小游戏!
  18. 【注意】重生后记得重置角色状态(速度、动画)。
平台游戏 = 角色(跑跳)+ 关卡(平台/死区)+ 重生。三者齐备“能玩”。

常见错误与排查

错误:角色卡在平台缝里?
原因:平台碰撞体之间有缝隙或角色碰撞体大
解决:平台 Box 碰撞体轻微重叠;角色用 Capsule 贴合;平台物理材质防滑。

动手练习

课后小任务(做出来才算真的学会)

  • 搭建一个 10 平台的关卡
  • 整合跑跳角色
  • 实现掉坑重生

本节小结

2D 平台游戏完成。下一课做 2D 敌人 AI。

完成打卡后,主站会实时更新你的学习进度 🎯

← 上一课2D 射线检测