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.
Thử thách
DễKhi robot nhảy lên, hãy cho robot nhún nhảy trở lại.
- Trong
_ready(), kết nối$AnimationPlayer.animation_finishedvới_on_animation_finished. - Viết
_on_animation_finished(anim_name): khianim_namelà"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