קירות עוצרים אותך
חלק מהיחידה קלט ותנועה במסלול ה-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().
אתגר
קלגרום לקירות לעצור את הגיבור.
- החלף את השורה
position.xבשורה שמגדירה אתvelocity.xל-direction * speed, ללאdelta. - מתחתיה, קרא ל-
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
כל השיעורים ביחידה קלט ותנועה
5פרויקט: גיבור במשחק פלטפורמה
גיבור: ריצהגיבור: קפיצהתרגלו בעצמכם: Godot אונליין