我正在使用给定的 godot 2D 平台游戏运动并制作了我自己的自定义输入。其中一张是幻灯片。当进行滑动输入时,它会播放滑动动画并提高速度。动画结束时,角色站了起来。如何让角色停止动画并在完成后将速度恢复正常。
and not(Input.is_action_pressed("slide")):
velocity.y = JUMP_VELOCITY
var direction = Input.get_axis("left", "right")
if direction > 0:
animated_sprite.flip_h = false
elif direction < 0:
animated_sprite.flip_h = true
if direction == 0:
animated_sprite.play('default')
else:
if Input.is_action_pressed("slide"):
animated_sprite.play("slide")
animation_player.play("slide")
SPEED = 150.0
else:
animated_sprite.play("run")
animation_player.play("RESET")
SPEED = 120.0
if direction:
velocity.x = direction * SPEED
else:
velocity.x = move_toward(velocity.x, 0, SPEED)
move_and_slide()
请随时提问以获取更多信息。
您可以使用“调用方法”动画轨道直接从动画关键帧调用函数。 Brackeys 的新视频教程在此展示了这一点:https://youtube.com/watch?v=LOhfqjmasi0&t=4398
您也可以使用
await
关键字等待 animation_finished
信号:
if Input.is_action_just_pressed("slide"):
animation_player.play("slide")
SPEED = 150.0
await animation_player.animation_finished
SPEED = 120.0