קפיצה כפולה
חלק מהיחידה קלט ותנועה במסלול ה-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.
אתגר
בינוניתנו לגיבור קפיצה כפולה. הוא יכול לקפוץ פעמיים לפני שהוא נוחת, לעולם לא שלוש פעמים. ספרו את הקפיצות באמצעות המשתנה 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()
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה קלט ותנועה
5פרויקט: גיבור במשחק פלטפורמה
גיבור: ריצהגיבור: קפיצהתרגלו בעצמכם: Godot אונליין