Menu
CoddyTech

קירות עוצרים אותך

חלק מהיחידה קלט ותנועה במסלול ה-Godot של Coddy. שיעור 9 מתוך 28.

הקירות והעמוד הם צמתים מסוג StaticBody2D. גוף סטטי לעולם אינו זז. לכל אחד מהם יש CollisionShape2D שמגדיר את צורתו המוצקה ו-ColorRect כדי לצייר אותו.

רק move_and_slide() בודקת אם יש קירות. שינוי של position מזיז את הגוף בלי לבדוק, ולכן הוא עובר דרך הקירות:

position.x += direction * speed * delta   # דרך קירות
velocity.x = direction * speed            # נעצר על ידי קירות
move_and_slide()

טקסט שמופיע אחרי # הוא הערה. Godot מתעלמת ממנו.

גוף שפוגע בקיר בזווית ממשיך לנוע לאורך הקיר. הוא מחליק במקום להיתקע, וזה מקור השם move_and_slide().

challenge icon

אתגר

קל

גרום לקירות לעצור את הגיבור.

  1. החלף את השורה position.x בשורה שמגדירה את velocity.x ל-direction * speed, ללא delta.
  2. מתחתיה, קרא ל-move_and_slide().

לחץ על "שחק" והתקדם לשני הכיוונים: העמוד והקיר עוצרים את הגיבור. לאחר מכן לחץ על "בדיקה".

נסו בעצמכם

extends CharacterBody2D

var speed = 200

func _physics_process(delta):
	var direction = Input.get_axis("move_left", "move_right")
	position.x += direction * speed * delta

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

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