neighbor-game/scripts/car_spawner.gd

35 lines
1.2 KiB
GDScript3
Raw Normal View History

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