קפיצה כפולה
חלק מהיחידה קלט ותנועה במסלול ה-Godot של Coddy. שיעור 17 מתוך 28.
קפיצה כפולה מאפשרת לגיבור לקפוץ פעם נוספת באוויר. is_on_floor() לא יכולה לאפשר זאת, ולכן הגיבור סופר את הקפיצות שלו.
שמרו את הספירה במשתנה. הגדירו אותו ל־2 כשהגיבור על הקרקע, והחסירו ממנו 1 בכל קפיצה:
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.
אתגר
בינוניתן לגיבור לקפוץ פעמיים.
- הוסף
var jumps_left = 0למעלה, והגדר אותו ל־2בזמן ש־is_on_floor(). - קפוץ כאשר
jumps_left > 0במקוםis_on_floor(), והפחת אחד מ־jumps_left.
לחץ על "שחק": הגיבור קופץ פעמיים לפני שהוא נוחת, ולעולם לא שלוש פעמים. לאחר מכן לחץ על "בדיקה".
נסו בעצמכם
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 אונליין