Menu
CoddyTech

再生が終わったとき

CoddyのGodotジャーニー「ゲームの手触り」セクションの一部。レッスン 22/23。

ホップの後、ロボットはじっとしています。"hop"はループしないからです。ロボットは再び上下に揺れる動きをするはずです。

AnimationPlayerは、ループしないアニメーションが最後まで再生されると、animation_finishedシグナルを送信します。このシグナルにはアニメーション名が含まれるため、1つの関数ですべてのアニメーションを処理できます。

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プレイグラウンド