Menu
CoddyTech

Gdy się zakończy

Część sekcji Dopracowanie rozgrywki ścieżki Godot w Coddy. Lekcja 22 z 23.

Po podskoku robot stoi nieruchomo, ponieważ "hop" nie jest zapętlona. Powinien wrócić do kołysania się.

AnimationPlayer wysyła sygnał animation_finished, gdy animacja, która nie jest zapętlona, dobiega końca. Sygnał zawiera nazwę animacji, więc jedna funkcja może obsługiwać każdą animację.

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

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

Podłączasz go tak samo jak body_entered. Zapętlona animacja nigdy się nie kończy, więc "bob" nigdy go nie wysyła.

challenge icon

Wyzwanie

Łatwy

Spraw, by robot znów podskakiwał po podskoku.

  1. W _ready() połącz $AnimationPlayer.animation_finished z _on_animation_finished.
  2. Napisz _on_animation_finished(anim_name): gdy anim_name ma wartość "hop", odtwórz "bob".

Naciśnij „Graj” i naciśnij Spację: po podskoku robot znów podskakuje. Następnie naciśnij „Sprawdź”.

Spróbuj swoich sił

extends Node2D

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

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

Wszystkie lekcje w sekcji Dopracowanie rozgrywki

Poćwicz samodzielnie: Edytor online Godot