Menu
CoddyTech

عند انتهائه

جزء من قسم الإحساس باللعبة في رحلة 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

التحدي

سهل

اجعل الروبوت يتمايل مجددًا بعد القفزة.

  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")

جميع دروس الإحساس باللعبة

تدرّب بنفسك: Playground لـ Godot