Menu
CoddyTech
flag Ru iconРусскийdown icon

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

Часть раздела Ощущения от игры путешествия по 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

Задание

Легко

Подключи сигнал animation_finished узла AnimationPlayer к функции _on_animation_finished(anim_name). Когда завершается анимация "hop", снова запусти "bob".

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

extends Node2D

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

func _process(delta):
	if Input.is_action_just_pressed("jump"):
		$AnimationPlayer.play("hop")
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

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

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