Menu
CoddyTech

القفز المتغير

جزء من قسم الإدخال والحركة في رحلة Godot على Coddy. الدرس 16 من 28.

في معظم ألعاب المنصات، تؤدي الضغطة السريعة إلى قفزة صغيرة، بينما يؤدي الضغط المستمر على الزر إلى قفزة كاملة.

لتحقيق ذلك، أوقف القفزة عند تحرير الزر. تكون Input.is_action_just_released("jump") صحيحة في الإطار الواحد الذي يُرفع فيه الإصبع عن المفتاح. إذا كان البطل لا يزال يصعد حينها، فاقسم سرعته إلى الأعلى على اثنين:

if Input.is_action_just_released("jump") and velocity.y < 0:
	velocity.y = velocity.y / 2

تعني velocity.y < 0 أن البطل لا يزال يصعد. ومن دون هذا الشرط، سيؤدي تحرير المفتاح أثناء الهبوط إلى إبطاء السقوط.

اضغط باستمرار على المفتاح إلى ما بعد قمة القفزة، ولن يتم إيقافها.

challenge icon

التحدي

متوسط

اجعل الضغطة السريعة على زر القفز تُحدث قفزة صغيرة.

  1. بعد جملة if الخاصة بالقفز، أضف جملة if للشرط Input.is_action_just_released("jump") وvelocity.y < 0.
  2. داخلها، اقسم velocity.y على 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
	velocity.x = Input.get_axis("move_left", "move_right") * speed
	move_and_slide()

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

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