Menu
CoddyTech

Khi phát xong

Thuộc phần Cảm giác chơi game trong hành trình Godot của Coddy. Bài học 22 trên 23.

Sau khi nhảy một bước, robot đứng yên vì "hop" không lặp lại. Nó cần quay lại chuyển động nhún lên xuống.

AnimationPlayer gửi tín hiệu animation_finished khi một hoạt ảnh không lặp lại chạy đến cuối. Tín hiệu mang theo tên hoạt ảnh, nên một hàm có thể xử lý mọi hoạt ảnh.

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

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

Bạn kết nối tín hiệu này giống như với body_entered. Hoạt ảnh lặp lại sẽ không bao giờ kết thúc, nên "bob" không bao giờ gửi tín hiệu.

challenge icon

Thử thách

Dễ

Khi robot nhảy lên, hãy cho robot nhún nhảy trở lại.

  1. Trong _ready(), kết nối $AnimationPlayer.animation_finished với _on_animation_finished.
  2. Viết _on_animation_finished(anim_name): khi anim_name là "hop", hãy phát "bob".

Nhấn Chơi rồi nhấn Space: sau khi nhảy lên, robot nhún nhảy trở lại. Sau đó nhấn Kiểm tra.

Tự làm thử

extends Node2D

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

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

Tất cả bài học trong Cảm giác chơi game

Tự luyện tập: Playground Godot