Menu
CoddyTech

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.

challenge icon

אתגר

קל

גרום לגיבור לנוע לפי המהירות שלו.

  1. בתוך _physics_process(), מתחת לשורת velocity, הוסף move_and_slide().
  2. הזח אותו בטאב אחד, כמו השורה שמעליו.

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

נסו בעצמכם

extends CharacterBody2D

func _physics_process(delta):
	velocity = Vector2(150, 0)

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

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