1第 1 步:先把「跳跃手感」调对,再做关卡
平台跳跃 90% 的成败在手感,不要先堆美术。先用一个灰色方块(debug 占位)把角色放进一个只有地面和一个高台的测试场景,反复跳直到手感舒服。
- 1给角色设置起跳初速度(向上的负速度)与重力,推荐先从 jump_velocity=-400、gravity=980 开始(Godot 单位)。
- 2实现「可变跳高」:松开跳跃键时若角色还在上升,把向上速度乘以 0.5,实现短按小跳、长按大跳。
- 3加「土狼时间」:离开平台边缘后 0.1 秒内仍允许起跳。
- 4加「跳跃缓冲」:落地前 0.1 秒内按下跳跃,落地瞬间自动起跳。
- 5落地时关闭水平加速度突变,让跑→跳→落横向手感连贯。
请用 Godot 4 的 GDScript,为 CharacterBody2D 写一个平台跳跃角色控制器,要求:1) 长按跳更高、松开截断上升;2) 离开平台 0.1s 内仍可起跳(coyote time);3) 落地前 0.1s 的跳跃输入被缓冲;4) 支持一次二段跳并播放残影。把所有手感参数(重力、跳跃速度、时间窗)提取成 @export 常量方便我调节。
- 短按是小跳、长按是大跳
- 走出边缘立刻按跳不会死
- 快落地时提前按也能跳起来
- 连跳十次没有一次「没跳起来」
2第 2 步:搭建关卡方块与危险判定
- 1用 TileMap/TileMapLayer 绘制可站立平台,分前景与背景两层做视差。
- 2创建尖刺、深坑、移动敌人三类危险,并把它们的受击判定盒画得比贴图小 20%。
- 3玩家碰到危险 → 播放受击闪白 + 回到本关检查点,死亡计数 +1。
- 4放置金币(可选收集)与终点旗杆,碰到旗杆触发过关结算。
判定盒(collision shape)要比视觉贴图小,宁可放过玩家也不要误判。这是《蔚蓝》等好评平台跳跃「手感宽容」的关键秘密。
不要让角色和尖刺用同尺寸的碰撞盒,否则会出现大量「看起来没碰到却死了」的差评反馈。
3第 3 步:关卡难度曲线(教一个机制 → 变奏 → 组合)
好关卡遵循「教学—变奏—组合—高潮」节奏:先用安全环境让玩家学会一个动作,再加入危险,再和旧机制组合,最后给一个有挑战的跳跃作为小高潮。
- 1第 1 关只教基础跳跃,地面宽、间距小、无致命危险。
- 2第 2~3 关引入二段跳,落点间距逐步拉开。
- 3中段引入移动平台、尖刺与蹬墙,每次只加一个新元素。
- 4每 3~4 关安排一次「机制组合」作为难点,之后接一段轻松区域让玩家喘气。
我在做一款 20 关的平台跳跃,核心动作是 跳跃/二段跳/蹬墙跳,危险是 尖刺/移动敌人/深坑。请帮我设计关卡难度曲线表:每关新教什么机制、组合什么旧机制、建议平台间距(用角色跳跃可达距离的百分比表示)、检查点数量。
4第 4 步:打磨反馈与发布
- 1起跳、落地、二段跳、受击、过关各配独立音效;落地加轻微挤压拉伸(squash & stretch)。
- 2角色起跳时轻微拉长、落地压扁,0.1 秒回弹,强化重量感。
- 3加屏幕跟随与前瞻(角色朝哪看,相机提前往哪偏),快跑时不挡视野。
- 4结算页展示死亡次数、用时、收集率,激励重玩。
- 5导出 Web/移动端,itch.io 或微信小游戏上架。
挤压拉伸只在垂直方向做、幅度控制在 10%~15%,并保证视觉体积不变,廉价且能极大提升「游戏感」。