aboutsummaryrefslogtreecommitdiff
path: root/turbo.scm
diff options
context:
space:
mode:
Diffstat (limited to 'turbo.scm')
-rw-r--r--turbo.scm18
1 files changed, 11 insertions, 7 deletions
diff --git a/turbo.scm b/turbo.scm
index 92c5103..1c32f01 100644
--- a/turbo.scm
+++ b/turbo.scm
@@ -31,7 +31,7 @@
(define player-max-speed 20)
(define player-rotation 0)
-(define level-difficulty 50)
+(define level-difficulty 1)
(define music-play? #t)
(define music-res (load-audio "music.ogg"))
@@ -77,9 +77,9 @@
(define (vehicle-has-spawn-space? vehicle)
(define (vehicle-in-the-way? v)
- (and (not (= (vehicle-id vehicle) (vehicle-id v)))
- (vehicle-inactive? v)
- (vehicle-safety-distance? v vehicle)))
+ (and (not (vehicle= vehicle v))
+ (vehicle-active? v)
+ (not (vehicle-safety-distance? v vehicle))))
(not (any vehicle-in-the-way? vehicles)))
@@ -198,18 +198,22 @@
(set-vehicle-position! player-car (vec2+ (vehicle-position player-car) player-velocity))
(for-each (lambda (veh)
- (vehicle-move! veh (vec2 (- 0 (vehicle-speed-diff player-car veh)) 0)))
+ (vehicle-move! veh (vec2 (- 0 (vehicle-speed- player-car veh)) 0)))
(filter vehicle-active? vehicles))
- ;; when vehicle goes off screen
+ ;; Reset vehicles that have gone off screen
(for-each vehicle-reset-ahead (filter vehicle-off-screen? vehicles))
+ ;; Randomly respawn vehicles based on level difficulty
(if (= 0 (random level-difficulty))
(begin
(let* ((inactive-vehicles (filter vehicle-inactive? vehicles))
(spawnable-vehicles (filter vehicle-has-spawn-space? inactive-vehicles)))
(if (not (null? spawnable-vehicles))
- (set-vehicle-active! (car spawnable-vehicles) #t)))))
+ (set-vehicle-active! (list-ref
+ spawnable-vehicles
+ (random (length spawnable-vehicles)))
+ #t)))))
;; End begin
)))