small racing game im working on
Diffstat (limited to 'scenes/race_highlevel.gd')
-rw-r--r--scenes/race_highlevel.gd35
1 files changed, 13 insertions, 22 deletions
diff --git a/scenes/race_highlevel.gd b/scenes/race_highlevel.gd
index 4628cef..79ac020 100644
--- a/scenes/race_highlevel.gd
+++ b/scenes/race_highlevel.gd
@@ -10,53 +10,44 @@ extends Splitscreen
@export var ghost_scene: PackedScene
@export var track_loader_scene: PackedScene
-
var race: Race
var huds: Array[HUD]
func _ready() -> void:
- super()
scale = Globals.cfg.get_value(SettingsSaver.GRAPHIC, "viewport_scale") / 100
- await get_tree().physics_frame
race = Race.new(Globals.playing, Globals.ghost, car_scene, ghost_scene, track_loader_scene)
race.did_reset.connect(count_in)
- race.cars_needed = Globals.players
add_child(race)
- for player in Globals.players:
- add_player()
+ add_player()
+ super()
# cant call it join because of overriding and stuff
func add_player() -> void:
- var car := len(players)
- var v := join()
- var c_cam := CarCamera.new(race.cars[car])
+ await get_tree().physics_frame
+ var c_cam := CarCamera.new(race.car)
var i_cam := IntroCam.new(Globals.playing, c_cam)
+ var v := join()
v.viewport.add_child(c_cam)
v.viewport.add_child(i_cam)
var hud = hud_scene.instantiate()
- hud.assigned.emit(race.cars[car], race.timers[car], race.track)
+ hud.assigned.emit(race.car, race.timer, race.track)
v.add_child(hud)
- race.split.connect(func(t, p, n): if n == car: hud.splits.update(t, p))
+ race.split.connect(hud.splits.update)
race.next_lap.connect(hud.laps.increment)
huds.append(hud)
i_cam.finished.connect(count_in)
race.did_reset.connect(c_cam.reset)
race.did_reset.connect(hud.laps.reset)
- race.finished.connect(func(t: float, p_t: float, n: int):
- if n != car:
- return
+ race.finished.connect(func(t: float, p_t: float):
var finish: FinishUI = finish_scene.instantiate()
hud.add_child(finish)
finish.set_time(t, p_t)
- finish.retry.disabled = players.size() > 1
- finish.quit.disabled = players.size() > 1
- race.all_finished.connect(func():
- finish.retry.disabled = false
- finish.quit.disabled = false
+ finish.retry.connect(func():
+ race.reset()
+ finish.queue_free()
+ get_tree().paused = false
)
- finish.retry.pressed.connect(race.reset)
- race.did_reset.connect(finish.queue_free)
- finish.quit.pressed.connect(queue_free)
+ finish.quit.connect(queue_free)
)
func count_in():