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