Menu
CoddyTech
flag He iconעבריתdown icon

אלכסונים מאוזנים

חלק מהיחידה קלט ותנועה במסלול ה-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בחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה קלט ותנועה

תרגלו בעצמכם: Godot אונליין