Menu
CoddyTech

Когда она завершится

Часть раздела Ощущения от игры путешествия по Godot на Coddy. Урок 22 из 23.

После прыжка робот стоит неподвижно, потому что "hop" не зацикливается. Он должен снова начать покачиваться.

AnimationPlayer отправляет сигнал animation_finished, когда незакольцованная анимация доходит до конца. Сигнал содержит имя анимации, поэтому одна функция может обрабатывать все анимации.

func _ready():
	$AnimationPlayer.animation_finished.connect(_on_animation_finished)

func _on_animation_finished(anim_name):
	if anim_name == "hop":
		print("Landed")

Подключить его можно так же, как body_entered. Зацикленная анимация никогда не заканчивается, поэтому "bob" никогда его не отправляет.

challenge icon

Задание

Легко

Заставь робота снова покачиваться после прыжка.

  1. В _ready() подключи $AnimationPlayer.animation_finished к _on_animation_finished.
  2. Напиши _on_animation_finished(anim_name): когда anim_name равен "hop", воспроизведи "bob".

Нажми «Играть» и нажми Space: после прыжка робот снова покачивается. Затем нажми «Проверить».

Попробуйте сами

extends Node2D

func _ready():
	$AnimationPlayer.play("bob")

func _process(delta):
	if Input.is_action_just_pressed("jump"):
		$AnimationPlayer.play("hop")

Все уроки раздела Ощущения от игры

Потренируйтесь самостоятельно: Песочница Godot