small racing game im working on
Diffstat (limited to 'race.gd')
-rw-r--r--race.gd29
1 files changed, 24 insertions, 5 deletions
diff --git a/race.gd b/race.gd
index 5c33a91..4a86e88 100644
--- a/race.gd
+++ b/race.gd
@@ -1,9 +1,28 @@
extends Node3D
-@export var car: Car
+@export var car: PackedScene
+@export var track: TrackLoader
-func _on_track_place_car(at: Vector3, rot: Vector3) -> void:
- # await car.ready
- car.ball.global_position = at + (Vector3.UP * 2)
- car.ball.global_rotation = rot
+signal created_car(car: Car)
+func _ready() -> void:
+ var c: Node3D = car.instantiate()
+ c.set_script(load("res://classes/human_car.gd"))
+ c.show_debug = true
+ add_child(c)
+ c.ball.freeze = true
+ c.visible = false
+ c.global_position = track.start_pos + Vector3.UP * 3.5
+ c.set_deferred(&"rotation", track.start_rot + Vector3.UP * PI)
+ await get_tree().process_frame
+ c.global_position = c.global_position - (c.ball.global_transform.basis.z * 2) # bump forward a teensy bit
+ c.visible = true
+ created_car.emit(c)
+ for cp in track.checkpoints:
+ cp.collected.connect(collect.bind(cp.id))
+
+func collect(cp: int) -> void:
+ print("collected cp %d" % cp)
+ collected_checkpoints.append(cp)
+
+var collected_checkpoints: PackedInt32Array = []