diff options
author | Gene Pasquet <dev@etenil.net> | 2024-05-26 10:40:07 +0100 |
---|---|---|
committer | Gene Pasquet <dev@etenil.net> | 2024-05-26 10:40:07 +0100 |
commit | 1f52f437c6555b23d0359eccf25d364493cf69aa (patch) | |
tree | e896de07d24f8cdb43e594a887a57b00be022c93 | |
parent | 838ba7744fbc4360722e215d1869784d53febb1c (diff) |
Fix engine sound effects
-rw-r--r-- | TODO.org | 2 | ||||
-rw-r--r-- | turbo.scm | 23 |
2 files changed, 19 insertions, 6 deletions
@@ -27,6 +27,6 @@ ** TODO Reduce lanes to 3 from level 10 *** TODO Handle vehicles lane change for reductions ** DONE Add music -** STARTED Add sound effects +** DONE Add sound effects ** TODO Draw sprites in batch for perf ** TODO Package as flatpack @@ -148,10 +148,25 @@ (define (level-min-speed) (+ player-min-speed (* (- level-difficulty 1) 36))) +(define car-gears 5) + +(define (gearing-range) + (/ (* 1.05 player-max-speed) car-gears)) + +(define (speed->gear speed) + (let ((gear-range (gearing-range))) + (floor (/ speed gear-range)))) + +(define (speed->engine-power speed) + (let* ((gear (speed->gear speed)) + (speed-range (* gear (gearing-range)))) + (/ (- speed speed-range) speed-range))) + (define (set-player-speed! new-speed) (let* ((min-speed (level-min-speed)) (player-speed (max (min new-speed player-max-speed) min-speed)) - (pitch-factor (* 0.10 (- player-speed min-speed)))) + (engine-power (speed->engine-power player-speed)) + (pitch-factor (+ 1 engine-power))) (set-vehicle-speed! player-car player-speed) (set-source-pitch! engine-sound (+ 1 pitch-factor)))) @@ -208,7 +223,7 @@ (set-source-volume! music 0.5) -(source-play music) +; (source-play music) (source-play engine-sound) (define (update interval) @@ -230,9 +245,7 @@ (let ((new-speed (+ (vehicle-speed player-car) (* player-current-acceleration interval)))) - (set-vehicle-speed! player-car (min player-max-speed - (max (level-min-speed) - new-speed)))) + (set-player-speed! new-speed)) (when (and game-started? (player-collides?)) (off-road-player) |