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
30
31
32
33
|
extends Line2D
class_name MiniMap
var car: Node3D
@export var track: TrackLoader
@export var player_color: Color
func _ready() -> void:
set_process(false)
clear_points()
width = track.track.track_width
if !track.track.is_loop:
end_cap_mode = LINE_CAP_ROUND
begin_cap_mode = LINE_CAP_ROUND
for point_3d in track.curve.get_baked_points():
var p := flatten(point_3d)
add_point(p)
func _process(_delta: float) -> void:
queue_redraw()
func _draw() -> void:
if !car: return
var point := flatten(track.curve.get_closest_point(car.global_position))
draw_circle(point, width / 2, player_color)
func flatten(vec: Vector3) -> Vector2:
return Vector2(vec.x, vec.z)
func _on_race_created_car(_car) -> void:
car = _car.ball
set_process(true)
|