You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Game Maker修改跳跃高度无效:含角色穿平台等异常求助

Game Maker跳跃高度无效问题解决方法
  • 核心问题分析

    • 直接修改y坐标属于硬位移,会绕过Game Maker的碰撞检测机制,导致角色穿过平台;同时这种瞬间位移不受重力影响,所以调整数值只会改变瞬间移动的距离,而非真正的跳跃高度。
    • 你的跳跃逻辑没有作用在垂直速度vsp上,而是直接修改位置,导致重力和跳跃的物理交互失效。
  • 具体修正步骤

    1. 重构跳跃逻辑,使用垂直速度控制
      不要直接操作y,而是给垂直速度变量(比如vsp)设置负值来触发跳跃,只有在角色接触地面时才允许跳跃,避免空中多次跳:
      // 示例:空格键触发跳跃,仅在地面时生效
      if (keyboard_check_pressed(vk_space) && place_meeting(x, y+1, obj_ground)) {
          vsp = -12; // 修改这个数值即可调整跳跃高度,数值绝对值越大跳得越高
      }
      
    2. 正确应用重力逻辑
      确保isUmbrella变量正确切换重力值,并且每一步都把重力叠加到垂直速度上:
      // 根据isUmbrella设置不同重力
      if (isUmbrella) {
          vsp += 0.2; // 低重力,下落更慢
      } else {
          vsp += 0.8; // 标准重力
      }
      
    3. 配合碰撞检测更新位置
      通过垂直速度更新y坐标,并在碰撞到平台时重置速度,避免穿模:
      // 应用垂直速度
      y += vsp;
      // 检测地面碰撞
      if (place_meeting(x, y, obj_ground)) {
          // 微调位置到平台表面
          while (!place_meeting(x, y+sign(vsp), obj_ground)) {
              y += sign(vsp);
          }
          // 落地后重置垂直速度
          vsp = 0;
      }
      
  • 补充说明
    这样修改后,调整vsp = -12中的数值就能直接改变跳跃高度,同时重力会自然拉回角色,碰撞检测也能正常工作,不会出现穿平台的问题。

内容的提问来源于stack exchange,提问作者Mike Ly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 00:37:23