Menu
CoddyTech

Conduire

Leçon 1 sur 20 du cours Jeu Godot : Circuit néon de Coddy.

Dans ce cours, tu construis un jeu complet, une fonctionnalité par leçon : un jeu de course néon vu d’en haut. Tu fais la course contre trois voitures rivales pendant trois tours sur un circuit lumineux.

Le projet te fournit trois scripts : car.gd pour la voiture, rival.gd pour les voitures rivales et race.gd pour la course. Deux autres éléments sont fournis et restent invisibles : le circuit, qui dessine la route et répond aux questions à son sujet, et la scène. Tu n’auras pas besoin de les modifier.

Aujourd’hui, la voiture apprend à conduire. Elle conserve une velocity : le nombre de pixels qu’elle parcourt chaque seconde, et dans quelle direction. La direction vers laquelle pointe la voiture est sa rotation convertie en vecteur de direction :

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

Tant que la touche Haut est enfoncée, la vitesse augmente dans cette direction de accel par seconde. Input.get_action_strength vaut 1.0 tant que la touche est enfoncée et 0.0 lorsqu’elle ne l’est pas :

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

limit_length maintient la vitesse à max_speed ou en dessous. La multiplication par delta, le nombre de secondes écoulées depuis la dernière image, permet de conserver la même vitesse sur un écran rapide ou lent.

challenge icon

Défi

Facile
  1. Dans car.gd, remplace pass dans _physics_process par les lignes ci-dessus.
  2. Enfin, fais briller l’échappement pendant que tu conduis : $Exhaust.emitting = throttle > 0.0.
  3. Appuie sur « Jouer » et maintiens la touche Haut (ou W).

Essayez vous-même

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

Toutes les leçons de Jeu Godot : Circuit néon

Entraînez-vous par vous-même : Playground Godot