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
extends Node3D

@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

func _ready() -> void:
	await get_tree().physics_frame
	for p in players: p.play()

func _process(_d: float):
	var r := car.rpm()
	var n := clampf(r / 500.0, 0, 1)
#	var s := "with n: %.2f" % n
	for i in 4:
		players[i].volume_db = (db_curves[i].sample_baked(n) - 50)
		players[i].pitch_scale = (pitch_curves[i].sample_baked(n) * 2) + .001
#		s += " | %s's: %.2f (%.2f)" % [players[i].name, players[i].volume_db, players[i].pitch_scale]
		if n > .9:
			players[-1].pitch_scale = (car.rpm() / 600) + 1
#	print(s)