القيادة
الدرس 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، أي عدد الثواني منذ الإطار السابق، بقاء السرعة نفسها على الشاشة السريعة والبطيئة.
التحدي
سهل- في
car.gd، استبدلpassفي_physics_processبالأسطر أعلاه. - أخيرًا، اجعل العادم يتوهج أثناء القيادة:
$Exhaust.emitting = throttle > 0.0. - اضغط على «العب» واستمر في الضغط على 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