קפיצה למעלה
חלק מהיחידה קלט ותנועה במסלול ה-Godot של Coddy. שיעור 13 מתוך 28.
כדי לקפוץ, יש להגדיר את velocity.y למהירות גדולה כלפי מעלה בפריים שבו השחקן לוחץ על jump. למעלה פירושו ערך y קטן יותר, לכן המספר שלילי:
var jump_velocity = -500
func _physics_process(delta):
velocity.y += gravity * delta
if Input.is_action_just_pressed("jump"):
velocity.y = jump_velocity
move_and_slide()אין צורך לתכנת את הדרך למטה. כוח הכבידה ממשיך להוסיף ל-velocity.y, לכן הגיבור מאט כשהוא עולה, נעצר בנקודה הגבוהה ביותר ונופל בחזרה.
יש להשתמש ב-is_action_just_pressed, ולא ב-is_action_pressed. לחיצה ממושכת על מקש תגדיר את המהירות ל-500- בכל פריים, והגיבור יעוף אל מחוץ למסך.
אתגר
קלגרום לגיבור לקפוץ.
- בין שורת כוח הכבידה ל־
move_and_slide(), הוסףifעבורInput.is_action_just_pressed("jump"). - בתוכו, הגדר את
velocity.yל־jump_velocity.
לחץ על "שחק" ולחץ על מקש הרווח: הגיבור יקפוץ וינחת שוב, והחזקת מקש הרווח לא תגרום לו לעוף. לאחר מכן לחץ על "בדיקה".
נסו בעצמכם
extends CharacterBody2D
var gravity = 1000
var jump_velocity = -500
func _physics_process(delta):
velocity.y += gravity * delta
move_and_slide()
כל השיעורים ביחידה קלט ותנועה
5פרויקט: גיבור במשחק פלטפורמה
גיבור: ריצהגיבור: קפיצהתרגלו בעצמכם: Godot אונליין