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