small racing game im working on
make map icons rotate
| -rw-r--r-- | ui/assets/ghost.png | bin | 276 -> 270 bytes | |||
| -rw-r--r-- | ui/map.gd | 23 |
2 files changed, 13 insertions, 10 deletions
diff --git a/ui/assets/ghost.png b/ui/assets/ghost.png Binary files differindex e98f5a1..0fc3941 100644 --- a/ui/assets/ghost.png +++ b/ui/assets/ghost.png @@ -8,7 +8,7 @@ var path := Path2D.new() @export var player_indicator: Texture @export var ghost_indicator: Texture -var followers: Array = [] # Array[[PathFollow2D, Node3D]] +var followers: Array = [] # Array[[PathFollow2D, Sprite2D, Node3D]] func _ready() -> void: clear_points() @@ -28,33 +28,36 @@ func _ready() -> void: path.curve = curve add_child(path) global_position = -box.position + Vector2(50, 50) - mkfollower(track.finish, finish_indicator) + mkfollower(track.finish, finish_indicator, Color.WHITE, false, true) func _process(_delta: float) -> void: for follower in followers: - if is_instance_valid(follower[1]): - (follower[0] as PathFollow2D).progress = track.curve.get_closest_offset((follower[1] as Node3D).global_position) + if is_instance_valid(follower[2]): + (follower[0] as PathFollow2D).progress = track.curve.get_closest_offset((follower[2] as Node3D).global_position) + if !follower[0].rotates: + (follower[1] as Sprite2D).global_rotation = -follower[2].global_rotation.y - PI/2 func vec(xy: float) -> Vector2: return Vector2(xy, xy) -func mkfollower(node: Node3D, tex: Texture, mod := Color.WHITE, back := false): +func mkfollower(node: Node3D, tex: Texture, mod := Color.WHITE, back := false, rotates := false): var follower := PathFollow2D.new() + follower.rotates = rotates path.add_child(follower) var sprite := Sprite2D.new() sprite.modulate = mod sprite.texture = tex follower.add_child(sprite) if back: - followers.push_front([follower, node]) + followers.push_front([follower, sprite, node]) else: - followers.push_back([follower, node]) + followers.push_back([follower,sprite, node]) func flatten(v: Vector3) -> Vector2: return Vector2(v.x, v.z) -func _on_race_created_car(car) -> void: - mkfollower(car.ball, player_indicator, player_color) +func _on_race_created_car(car: Car) -> void: + mkfollower(car.car_mesh, player_indicator, player_color) func _on_race_created_ghost(ghost: GhostCar) -> void: - mkfollower(ghost, ghost_indicator, Color.WHITE, true) + mkfollower(ghost, ghost_indicator, Color(1,1,1,.5), true) |