Menu
CoddyTech

קפיצה למעלה

חלק מהיחידה קלט ותנועה במסלול ה-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- בכל פריים, והגיבור יעוף אל מחוץ למסך.

challenge icon

אתגר

קל

גרום לגיבור לקפוץ.

  1. בין שורת כוח הכבידה ל־move_and_slide(), הוסף if עבור Input.is_action_just_pressed("jump").
  2. בתוכו, הגדר את velocity.y ל־jump_velocity.

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

נסו בעצמכם

extends CharacterBody2D

var gravity = 1000
var jump_velocity = -500

func _physics_process(delta):
	velocity.y += gravity * delta
	move_and_slide()

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

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