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 أبدًا.
التحدي
سهلاجعل البطل يتحرك وفقًا لسرعته.
- في
_physics_process()، أضفmove_and_slide()أسفل سطرvelocity. - أزِح السطر بمقدار علامة تبويب واحدة، مثل السطر أعلاه.
اضغط على «العب»: ينزلق البطل إلى اليمين بسرعة 150 بكسل في الثانية ويتوقف عند العمود. ثم اضغط على «تحقق».
جرّب بنفسك
extends CharacterBody2D
func _physics_process(delta):
velocity = Vector2(150, 0)
جميع دروس الإدخال والحركة
تدرّب بنفسك: Playground لـ Godot