Menu
CoddyTech

التسارع تدريجيًا

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

يصل البطل إلى سرعته القصوى في إطار واحد ويتوقف في إطار واحد. هذا يجعل الحركة متصلبة.

تحرّك move_toward(from, to, step) العدد from باتجاه to بمقدار لا يتجاوز step، ولا تتجاوزه أبدًا. قيمة move_toward(0, 220, 15) هي 15. وعند تكرار ذلك في كل إطار، ينتج 30 ثم 45 وهكذا حتى 220.

استخدمها مع velocity.x، باتجاه السرعة التي تطلبها المفاتيح:

var direction = Input.get_axis("move_left", "move_right")
velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)

acceleration هي السرعة المكتسبة في الثانية، لذا تُضرب في delta. عند قيمة 900، يصل البطل إلى 220 في نحو ربع ثانية. عندما لا يكون أي مفتاح مضغوطًا، يكون الهدف 0، لذا يتباطأ البطل حتى يتوقف.

challenge icon

التحدي

متوسط

اجعل سرعة البطل تزداد وتتباطأ بسلاسة.

  1. خزّن Input.get_axis("move_left", "move_right") في var direction.
  2. اضبط velocity.x باستخدام move_toward(velocity.x, direction * speed, acceleration * delta).

اضغط على «العب» واستمر في الضغط على أحد الأسهم: تزداد سرعة البطل حتى 220، وتتباطأ عندما ترفع إصبعك. ثم اضغط على «تحقق».

جرّب بنفسك

extends CharacterBody2D

var speed = 220
var acceleration = 900
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