Menu
CoddyTech

CharacterBody2D

جزء من قسم الإدخال والحركة في رحلة Godot على Coddy. الدرس 7 من 28.

يمرّ Node2D عبر الجدران، بينما يصطدم CharacterBody2D بالأشياء. في علامة تبويب المشهد، أصبح Hero الآن من النوع CharacterBody2D. والعقدة الابنة CollisionShape2D الخاصة به دائرية، وتمثّل الحجم الصلب للبطل. للجدران والعمود أشكال تصادم أيضًا.

للجسم velocity، وهي Vector2 بوحدة البكسل في الثانية. ضبطها لا يحرّك شيئًا. تحرّك move_and_slide() الجسم بحسب سرعته لمدة إطار واحد، وتوقفه عند أي شيء صلب:

func _physics_process(delta):
	velocity = Vector2(150, 0)
	move_and_slide()

حرّك الأجسام في _physics_process، التي تعمل بالتزامن مع الفيزياء. تطبّق move_and_slide() زمن الإطار، لذا لا تضرب velocity في delta أبدًا.

challenge icon

التحدي

سهل

اجعل البطل يتحرك وفقًا لسرعته.

  1. في _physics_process()، أضف move_and_slide() أسفل سطر velocity.
  2. أزِح السطر بمقدار علامة تبويب واحدة، مثل السطر أعلاه.

اضغط على «العب»: ينزلق البطل إلى اليمين بسرعة 150 بكسل في الثانية ويتوقف عند العمود. ثم اضغط على «تحقق».

جرّب بنفسك

extends CharacterBody2D

func _physics_process(delta):
	velocity = Vector2(150, 0)

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

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