Menu
CoddyTech

من الأرضية فقط

جزء من قسم الإدخال والحركة في رحلة 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
challenge icon

التحدي

سهل

اجعل البطل يقفز من الأرض فقط.

  1. أضف شرطًا ثانيًا إلى if الخاصة بالقفز باستخدام and.
  2. اجعله 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()

جميع دروس الإدخال والحركة

تدرّب بنفسك: Playground لـ Godot