CharacterBody2D
חלק מהיחידה קלט ותנועה במסלול ה-Godot של Coddy. שיעור 7 מתוך 28.
Node2D עובר דרך קירות. CharacterBody2D נתקל בדברים. בלשונית Scene, Hero הוא כעת CharacterBody2D. צאצא ה־CollisionShape2D שלו הוא עיגול, הגודל המוצק של הגיבור. גם לקירות ולעמוד יש צורות התנגשות.
לגוף יש velocity, Vector2 בפיקסלים לשנייה. הגדרת הערך שלו לא מזיזה דבר. move_and_slide() מזיזה את הגוף לפי המהירות שלו למשך פריים אחד ועוצרת אותו כשהוא נתקל במשהו מוצק:
func _physics_process(delta):
velocity = Vector2(150, 0)
move_and_slide()הזיזו גופים בתוך _physics_process, שפועלת בסנכרון עם הפיזיקה. move_and_slide() מחילה את משך הזמן של הפריים, לכן לעולם אל תכפילו את velocity ב־delta.
אתגר
קלהמהירות של הגיבור מוגדרת ל-150 פיקסלים לשנייה ימינה. קרא ל-move_and_slide() כדי שהוא יזוז ויעצור בעמוד.
נסו בעצמכם
extends CharacterBody2D
func _physics_process(delta):
velocity = Vector2(150, 0)
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה קלט ותנועה
5פרויקט: גיבור במשחק פלטפורמה
גיבור: ריצהגיבור: קפיצהתרגלו בעצמכם: Godot אונליין