أقطار متوازنة
جزء من قسم الإدخال والحركة في رحلة Godot على Coddy. الدرس 11 من 28.
بطل الدرس السابق سريع جدًا عند التحرك قطريًا. يؤدي التحرك إلى الأعلى وإلى اليمين إلى سرعة مقدارها Vector2(200, -200). طول هذا المتجه نحو 283 بكسل، وليس 200.
تحافظ الدالة .normalized() على اتجاه المتجه وتجعل طوله 1 بالضبط. اضربه في السرعة:
var direction = Vector2(Input.get_axis("move_left", "move_right"), Input.get_axis("move_up", "move_down"))
velocity = direction.normalized() * speed
move_and_slide()بعد ذلك، تتحرك الشخصية بسرعة 200 بكسل في الثانية في كل اتجاه. يبقى Vector2(0, 0) صفرًا عند تطبيعه، لذا يتوقف البطل.
تعيد Input.get_vector() بالفعل اتجاهًا لا يزيد طوله عن 1. كما أن velocity = Input.get_vector("move_left", "move_right", "move_up", "move_down") * speed يضمن حركة متوازنة قطريًا أيضًا.
التحدي
متوسطاجعل البطل يتحرك بسرعة 200 بكسل في الثانية في كل الاتجاهات، بما فيها الاتجاهات القطرية. استخدم .normalized() على اتجاه Vector2، أو استخدم Input.get_vector().
جرّب بنفسك
extends CharacterBody2D
var speed = 200
func _physics_process(delta):
velocity.x = Input.get_axis("move_left", "move_right") * speed
velocity.y = Input.get_axis("move_up", "move_down") * speed
move_and_slide()
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الإدخال والحركة
تدرّب بنفسك: Playground لـ Godot