القفزة المزدوجة
جزء من قسم الإدخال والحركة في رحلة 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()
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الإدخال والحركة
3الجاذبية والقفز
السقوط بفعل الجاذبيةالقفز إلى الأعلىمن الأرضية فقطالجري والقفزالقفز المتغيرالقفزة المزدوجةتدرّب بنفسك: Playground لـ Godot