Menu
CoddyTech

أقطار متوازنة

جزء من قسم الإدخال والحركة في رحلة 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 يضمن حركة متوازنة قطريًا أيضًا.

challenge icon

التحدي

متوسط

اجعل البطل يتحرك بسرعة 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()
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

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

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