Menu
CoddyTech
flag He iconעבריתdown icon

קפיצה כפולה

חלק מהיחידה קלט ותנועה במסלול ה-Godot של Coddy. שיעור 17 מתוך 28.

קפיצה כפולה מאפשרת לגיבור לקפוץ פעם נוספת באוויר. is_on_floor() לא יכולה לאפשר זאת, ולכן הגיבור סופר את הקפיצות שלו.

שמרו את הספירה במשתנה. הגדירו אותו ל־2 כשהגיבור על הקרקע, והפחיתו ממנו אחד בכל קפיצה:

var jumps_left = 0

func _physics_process(delta):
	velocity.y += gravity * delta
	if is_on_floor():
		jumps_left = 2
	if Input.is_action_just_pressed("jump") and jumps_left > 0:
		velocity.y = jump_velocity
		jumps_left -= 1

הקפיצה הראשונה הופכת את jumps_left ל־1, והקפיצה באוויר הופכת אותו ל־0. לחיצה שלישית לא עושה כלום. הנחיתה מחזירה אותו ל־2.

challenge icon

אתגר

בינוני

תנו לגיבור קפיצה כפולה. הוא יכול לקפוץ פעמיים לפני שהוא נוחת, לעולם לא שלוש פעמים. ספרו את הקפיצות באמצעות המשתנה jumps_left, שמוגדר ל־2 כשהוא על הרצפה.

נסו בעצמכם

extends CharacterBody2D

var speed = 220
var gravity = 1000
var jump_velocity = -500

func _physics_process(delta):
	velocity.y += gravity * delta
	if Input.is_action_just_pressed("jump") and is_on_floor():
		velocity.y = jump_velocity
	if Input.is_action_just_released("jump") and velocity.y < 0:
		velocity.y = velocity.y / 2
	velocity.x = Input.get_axis("move_left", "move_right") * speed
	move_and_slide()
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

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

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