small racing game im working on
Diffstat (limited to 'assets/cars/engine.gd')
| -rw-r--r-- | assets/cars/engine.gd | 36 |
1 files changed, 6 insertions, 30 deletions
diff --git a/assets/cars/engine.gd b/assets/cars/engine.gd index f5f0511..6fadd31 100644 --- a/assets/cars/engine.gd +++ b/assets/cars/engine.gd @@ -1,34 +1,10 @@ -extends Node3D +extends EngineNoise -@onready var idle := $idle as AudioStreamPlayer -@onready var low := $low as AudioStreamPlayer -@onready var med := $med as AudioStreamPlayer -@onready var high := $high as AudioStreamPlayer - -@onready var players: Array[AudioStreamPlayer] = [idle, low, med, high] -@export var db_curves: Array[Curve] -@export var pitch_curves: Array[Curve] - -@export var car: Car - -var n: float = 0 +@onready var car: Car = get_parent(); func _ready() -> void: - await get_tree().physics_frame - for p in players: p.play() - -func _process(d: float): - var r := car.rpm() - if car.engine_force > 0.1 and car.is_on_ground(): - n = move_toward(n, clampf(r / 700.0, 0, 1), 1 * d) - for i in 4: - curve_player(i) - else: - n = move_toward(n, 0, 1 * d) - curve_player(0) - for i in 4: - curve_player(i) + set_stream($Player.get_stream_playback()) -func curve_player(i: int) -> void: - players[i].volume_db = db_curves[i].sample_baked(n) - 50 - players[i].pitch_scale = (pitch_curves[i].sample_baked(n) * 2) + .001 +func _process(_d: float): + set_rpm((car.rpm() * car.engine_force * 0.0015) + 800) + update() |