Menu
CoddyTech

البطل: الركض بسلاسة

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

تبدأ الشخصية وتتوقف في إطار واحد. اجعلها تتسارع باستخدام acceleration وتتوقف باستخدام friction:

var direction = Input.get_axis("move_left", "move_right")
if direction == 0:
	velocity.x = move_toward(velocity.x, 0, friction * delta)
else:
	velocity.x = move_toward(velocity.x, direction * speed, acceleration * delta)

استخدم قيمة acceleration تساوي 1200 وقيمة friction تساوي 2400. تصل الشخصية إلى السرعة القصوى في نحو خُمس ثانية، لذا تظل لديها مساحة للجري عند الحفرة.

challenge icon

التحدي

متوسط

اجعل سرعة البطل تزداد ويتوقف بسلاسة.

  1. أضف var acceleration = 1200 وvar friction = 2400.
  2. خزّن المحور في var direction. عندما لا يكون أي مفتاح مضغوطًا، حرّك velocity.x نحو 0 باستخدام move_toward بمقدار friction * delta.
  3. عند الضغط على مفتاح، حرّك نحو direction * speed باستخدام move_toward بمقدار acceleration * delta.

اضغط «العب»: تزداد سرعة البطل، وينزلق قليلًا عند التوقف، ويجتاز الحفرة. ثم اضغط «تحقق».

جرّب بنفسك

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