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

Godot 4中跳跃动画无法正常运行的问题排查求助

跳跃动画无法触发的问题解决

你的跳跃动画无法运行,核心是动画触发的逻辑顺序和状态判断存在问题:

  • 当前代码中,跳跃动画的判断在左右移动逻辑之后,按下跳跃键的同时若按住方向键,会优先执行移动动画播放,直接跳过跳跃动画的触发。
  • Input.is_action_just_pressed仅在按键按下的第一帧返回true,若这一帧被移动逻辑抢占,跳跃动画就不会被触发。
  • 角色离开地面后,若非循环的跳跃动画播放完毕,会进入else分支播放Idle,不符合空中状态的动画逻辑。

修改后的代码

func _input(event):
    
    if Input.is_action_pressed("light plus"):
        LIGHTLVL.light_energy += 0.1
    if Input.is_action_pressed("light minus"):
        LIGHTLVL.light_energy -= 0.1
        
    if LIGHTLVL.light_energy > 1:
        LIGHTLVL.light_energy = 1
    if LIGHTLVL.light_energy < 0:
        LIGHTLVL.light_energy = 0

func _physics_process(delta):
    # 添加重力
    if not is_on_floor():
        velocity.y -= gravity * delta

    # 处理跳跃并记录触发状态
    var jumped = Input.is_action_just_pressed("ui_accept") and is_on_floor()
    if jumped:
        velocity.y = JUMP_VELOCITY

    # 获取输入方向并处理移动/减速
    var input_dir = Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
    var direction = (transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
    if direction:
        velocity.x = direction.x * SPEED
    else:
        velocity.x = move_toward(velocity.x, 0, SPEED)
    
    # 优先处理跳跃动画
    if jumped:
        $AnimatedSprite2D.play("Jump")
    # 其次处理移动动画
    elif Input.is_action_pressed("ui_right"):
        $AnimatedSprite2D.play("Walk")
        $AnimatedSprite2D.flip_h = 0
    elif Input.is_action_pressed("ui_left"):
        $AnimatedSprite2D.play("Walk")
        $AnimatedSprite2D.flip_h = 1
    # 仅在地面且无动画播放时切换Idle
    else:
        if is_on_floor() and !$AnimatedSprite2D.is_playing():
            $AnimatedSprite2D.play("Idle")
            
    move_and_slide()

修改说明

  1. 调整动画判断顺序:将跳跃动画触发逻辑放在最前面,确保按下跳跃键时优先执行,不会被移动逻辑覆盖。
  2. 复用跳跃状态变量:用jumped存储跳跃触发状态,避免重复判断相同条件,提升代码可读性。
  3. 优化Idle触发条件:只有角色在地面且当前无动画播放时,才切换到Idle,避免在空中时跳跃动画播放完毕后错误切回Idle。

额外检查点

  • 确认AnimatedSprite2D的动画列表中存在准确名为"Jump"的动画,且帧序列设置正确。
  • 再次确认跳跃动画的播放模式为非循环,且动画时长足够覆盖跳跃过程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 15:26:17