Jazda
Lekcja 1 z 20 w kursie Gra w Godot: Neonowy tor w Coddy.
W tym kursie zbudujesz całą grę, lekcja po lekcji: neonową grę wyścigową z widokiem z góry. Ścigasz się z trzema rywalami na trzech okrążeniach po świecącym torze.
Projekt zawiera trzy skrypty: car.gd dla samochodu, rival.gd dla rywali i race.gd dla wyścigu. Dwie dodatkowe części są już gotowe i pozostają niewidoczne: tor, który rysuje drogę i odpowiada na pytania na jej temat, oraz scena. Nie musisz ich zmieniać.
Dziś samochód uczy się jeździć. Ma velocity: określa ona, ile pikseli samochód pokonuje w każdej sekundzie i w którym kierunku. Kierunek, w którym samochód jest zwrócony, to rotation przekształcone w wektor kierunku:
var forward := Vector2.RIGHT.rotated(rotation)Gdy trzymasz klawisz strzałki w górę, prędkość w tym kierunku rośnie o accel na sekundę. Input.get_action_strength ma wartość 1.0, gdy klawisz jest wciśnięty, i 0.0, gdy nie jest:
var throttle := Input.get_action_strength("move_up")
velocity += forward * throttle * accel * delta
velocity = velocity.limit_length(max_speed)
position += velocity * deltalimit_length utrzymuje prędkość na poziomie max_speed lub niższym. Mnożenie przez delta, czyli czas w sekundach od poprzedniej klatki, sprawia, że prędkość jest taka sama na szybkim i wolnym ekranie.
Wyzwanie
Łatwy- W pliku
car.gdzastąppassw_physics_processpowyższymi liniami. - Na koniec spraw, by wydech świecił podczas jazdy:
$Exhaust.emitting = throttle > 0.0. - Naciśnij „Graj” i przytrzymaj klawisz strzałki w górę (lub W).
Spróbuj swoich sił
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
Wszystkie lekcje w sekcji Gra w Godot: Neonowy tor
Poćwicz samodzielnie: Edytor online Godot