Menu
CoddyTech

القيادة

الدرس 1 من 20 في دورة لعبة Godot: حلبة النيون على Coddy.

في هذه الدورة، ستبني لعبة كاملة، ميزةً في كل درس: لعبة سباق نيون تُرى من الأعلى. ستتسابق مع ثلاث سيارات منافسة لثلاث لفات حول مضمار متوهج.

يتضمن المشروع ثلاثة نصوص برمجية: car.gd للسيارة، وrival.gd للسيارات المنافسة، وrace.gd للسباق. وهناك جزآن إضافيان جاهزان ولا تحتاج إلى التعامل معهما: المضمار، الذي يرسم الطريق ويجيب عن الأسئلة المتعلقة به، والمشهد. لن تحتاج إلى تغييرهما.

اليوم ستتعلم السيارة القيادة. ولها velocity: مقدار ما تتحركه بالبكسل كل ثانية، والاتجاه الذي تتحرك فيه. اتجاه السيارة هو rotation محوّلًا إلى اتجاه:

var forward := Vector2.RIGHT.rotated(rotation)

عند الضغط على مفتاح السهم لأعلى، تزداد السرعة في ذلك الاتجاه بمقدار accel في الثانية. تكون Input.get_action_strength مساويةً لـ 1.0 أثناء الضغط على المفتاح، و0.0 عند عدم الضغط عليه:

var throttle := Input.get_action_strength("move_up")
velocity += forward * throttle * accel * delta
velocity = velocity.limit_length(max_speed)
position += velocity * delta

تحافظ limit_length على السرعة عند max_speed أو أقل. ويضمن الضرب في delta، أي عدد الثواني منذ الإطار السابق، بقاء السرعة نفسها على الشاشة السريعة والبطيئة.

challenge icon

التحدي

سهل
  1. في car.gd، استبدل pass في _physics_process بالأسطر أعلاه.
  2. أخيرًا، اجعل العادم يتوهج أثناء القيادة: $Exhaust.emitting = throttle > 0.0.
  3. اضغط على «العب» واستمر في الضغط على Up (أو W).

جرّب بنفسك

extends Node2D

@export var accel := 260.0
@export var max_speed := 200.0

var velocity := Vector2.ZERO


func _physics_process(delta: float) -> void:
	pass  # drive here

جميع دروس لعبة Godot: حلبة النيون

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