35 lines
1.2 KiB
GDScript3
35 lines
1.2 KiB
GDScript3
|
extends Node2D
|
||
|
|
||
|
onready var spawn_timer := $SpawnTimer
|
||
|
onready var car_end_point := $CarEndPoint
|
||
|
|
||
|
export var SPAWN_FREQUENCY := 10
|
||
|
export var SPAWN_VARIANCE := 5
|
||
|
export var CAR_SPEED := 12
|
||
|
export var CAR_SPEED_VARIANCE := 6
|
||
|
|
||
|
var car_scene = preload("res://scenes/car.tscn")
|
||
|
var rng := RandomNumberGenerator.new()
|
||
|
|
||
|
|
||
|
func _ready() -> void:
|
||
|
rng.randomize()
|
||
|
var spawn_time := rng.randf_range((SPAWN_FREQUENCY - SPAWN_VARIANCE / 2), (SPAWN_FREQUENCY + SPAWN_VARIANCE / 2))
|
||
|
print('Waiting %s for car' % stepify(spawn_time, 0.1))
|
||
|
spawn_timer.start(spawn_time)
|
||
|
|
||
|
func _on_SpawnTimer_timeout() -> void:
|
||
|
var new_car_instance = car_scene.instance() as Car
|
||
|
get_parent().add_child(new_car_instance)
|
||
|
var rng_speed := rng.randf_range((CAR_SPEED - CAR_SPEED_VARIANCE / 2), (CAR_SPEED + CAR_SPEED_VARIANCE / 2))
|
||
|
print('Starting engine at %s' % stepify(rng_speed, 0.1))
|
||
|
new_car_instance.start_engine(global_position, car_end_point.global_position, rng_speed)
|
||
|
var spawn_time := rng.randf_range((SPAWN_FREQUENCY - SPAWN_VARIANCE / 2), (SPAWN_FREQUENCY + SPAWN_VARIANCE / 2))
|
||
|
print('Waiting %s for car' % stepify(spawn_time, 0.1))
|
||
|
spawn_timer.start(spawn_time)
|
||
|
|
||
|
func _set_paused(paused: bool) -> void:
|
||
|
set_physics_process(!paused)
|
||
|
set_process(!paused)
|
||
|
spawn_timer.paused = paused
|