small racing game im working on
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
extends Camera3D

@export var main_cam: Camera3D
@export var track: TrackLoader
@export var count_player: AnimationPlayer

signal race_started

var car: Car

func _ready() -> void:
	var box := AABB()
	for point in track.track.track.get_baked_points():
		box = box.expand(point)
	var box_center := box.get_center()
	var top_center := Vector3(box_center.x, track.track.overview_height, box_center.z)
	global_position = top_center
	await get_tree().create_timer(2).timeout
	var tween := get_tree().create_tween().set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_IN_OUT)
	tween.tween_property(self, ^"global_position", main_cam.global_position, 2)
	tween.tween_property(self, ^"global_rotation", main_cam.global_rotation, 1)
	await tween.finished
	count_player.play(&"count_in", -1, 2)
	await count_player.animation_finished
	car.ball.freeze = false
	race_started.emit()

func _on_race_created_car(_car: Car) -> void:
	car = _car