Menu
CoddyTech

Mengemudi

Pelajaran 1 dari 20 dalam kursus Game Godot: Sirkuit Neon di Coddy.

Dalam kursus ini, kamu membuat satu game utuh, satu fitur setiap pelajaran: game balapan neon dengan tampilan dari atas. Kamu berlomba melawan tiga mobil rival selama tiga putaran di lintasan yang bercahaya.

Proyek ini menyediakan tiga skrip untukmu: car.gd untuk mobil, rival.gd untuk para rival, dan race.gd untuk balapan. Ada dua bagian lain yang disediakan dan tidak terlihat: lintasan, yang menggambar jalan dan menjawab pertanyaan tentangnya, serta adegan. Kamu tidak perlu mengubahnya.

Hari ini mobil belajar melaju. Mobil menyimpan velocity: jumlah piksel yang ditempuhnya setiap detik, serta arahnya. Arah hadap mobil diubah menjadi arah gerak melalui rotation:

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

Saat tombol Atas ditekan, velocity bertambah ke arah tersebut sebesar accel setiap detik. Input.get_action_strength bernilai 1.0 saat tombol ditekan dan 0.0 saat tidak ditekan:

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

limit_length menjaga kecepatan tetap sebesar max_speed atau di bawahnya. Perkalian dengan delta, yaitu jumlah detik sejak bingkai terakhir, menjaga kecepatan tetap sama di layar yang cepat maupun lambat.

challenge icon

Tantangan

Mudah
  1. Di car.gd, ganti pass di _physics_process dengan baris-baris di atas.
  2. Terakhir, buat knalpot menyala saat kamu berkendara: $Exhaust.emitting = throttle > 0.0.
  3. Tekan tombol “Main” dan tahan tombol Up (atau W).

Coba sendiri

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

Semua pelajaran di Game Godot: Sirkuit Neon

Latihan sendiri: Playground Godot