من الأرضية فقط
جزء من قسم الإدخال والحركة في رحلة Godot على Coddy. الدرس 14 من 28.
يمكن لبطل الدرس السابق أن يقفز مجددًا في الهواء، مهما تكرر ذلك. ينبغي أن يقفز فقط عندما يكون واقفًا على شيء ما.
تكون is_on_floor() true عندما تترك آخر move_and_slide() الجسمَ على أرضية. وفي الهواء تكون false.
تربط and بين شرطين. لا تُنفَّذ if إلا عندما يكون كلاهما صحيحًا:
if Input.is_action_just_pressed("jump") and is_on_floor():
velocity.y = jump_velocityالتحدي
سهلاجعل البطل يقفز من الأرض فقط.
- أضف شرطًا ثانيًا إلى
ifالخاصة بالقفز باستخدامand. - اجعله
is_on_floor().
اضغط على «العب» واضغط على مفتاح المسافة مرتين: الضغطة الثانية في الهواء لا تفعل شيئًا. ثم اضغط على «تحقق».
جرّب بنفسك
extends CharacterBody2D
var gravity = 1000
var jump_velocity = -500
func _physics_process(delta):
velocity.y += gravity * delta
if Input.is_action_just_pressed("jump"):
velocity.y = jump_velocity
move_and_slide()
جميع دروس الإدخال والحركة
3الجاذبية والقفز
السقوط بفعل الجاذبيةالقفز إلى الأعلىمن الأرضية فقطالجري والقفزالقفز المتغيرالقفزة المزدوجةتدرّب بنفسك: Playground لـ Godot