small racing game im working on
Diffstat (limited to 'assets/cars/engine.gd')
| -rw-r--r-- | assets/cars/engine.gd | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/assets/cars/engine.gd b/assets/cars/engine.gd index 47d6a59..d9cdf54 100644 --- a/assets/cars/engine.gd +++ b/assets/cars/engine.gd @@ -11,19 +11,26 @@ extends Node3D @export var car: Car +var n: float = 0 + func _ready() -> void: await get_tree().physics_frame for p in players: p.play() -func _process(_d: float): +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) + 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) + if n > .9: + players[-1].pitch_scale = (r / 600) + 1 +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 |