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
extends Camera3D
class_name IntroCam

signal finished

var track: TrackResource
var main_cam: Camera3D

func _init(_track: TrackResource, _main_cam: Camera3D):
	track = _track
	main_cam = _main_cam

func _ready() -> void:
	make_current()
	var box := AABB()
	for i in track.track.point_count:
		box = box.expand(track.track.get_point_position(i))
	var box_center := box.get_center()
	var top_center := Vector3(box_center.x, track.overview_height, box_center.z)
	global_position = top_center
	global_rotation_degrees.x = -90
	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
	finished.emit()
	main_cam.make_current()