Годо завершает движение анимацией

Я использую данное движение 2D-платформера Godot и внес свои собственные входные данные. Один из них — слайд. При вводе слайда воспроизводится анимация скольжения и увеличивается скорость. В конце анимации персонаж встает. Как заставить персонажа остановить анимацию и вернуть нормальную скорость после ее завершения.

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()

Не стесняйтесь задавать вопросы для получения дополнительной информации.

Как использовать d3.js для рисования 2D SVG-элементов в приложении Angular?
Как использовать d3.js для рисования 2D SVG-элементов в приложении Angular?
D3.js - это обширная библиотека, используемая для привязки произвольных данных к объектной модели документа (DOM). Мы разберем основные варианты...
0
0
72
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете вызывать функции непосредственно из ключевых кадров анимации, используя дорожку анимации «Вызов метода». В новом видеоуроке от 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

Другие вопросы по теме