aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGene Pasquet <dev@etenil.net>2024-05-22 11:33:09 +0100
committerGene Pasquet <dev@etenil.net>2024-05-22 11:33:09 +0100
commit5c25d3d8ae7ccaa0476f88f1dfdb782c130b6f4e (patch)
treee076918718b44de3632efe23c3a1e7d6fdc07391
parent523ed18352463ddea29bf0a97a65ca40b40cf420 (diff)
Lightweight reset, little adjustements
-rw-r--r--TODO.org24
-rw-r--r--turbo.scm14
-rw-r--r--turbo/vehicles.scm2
3 files changed, 18 insertions, 22 deletions
diff --git a/TODO.org b/TODO.org
index c70be0b..ff2b60d 100644
--- a/TODO.org
+++ b/TODO.org
@@ -1,27 +1,15 @@
* Stuff left to do
** DONE Detect when player leaves the road
-** TODO Add non-player cars onto the road
+** DONE Add non-player cars onto the road
*** DONE Add constant van on one lane
*** DONE Put van on random lane
*** DONE Add multiple vehicles on different lanes
-*** TODO Ensure vehicles don't overlap
-
-Possible algorithm:
-
-#+begin_src
-when car goes off-screen
-go through all lanes
-if lane has space, roll a die
-if lucky
- pick an inactive car
- activate that car on the lane
-#+end_src
-
-What happens if there are no cars on screen!?
- => Force it?
-
-** TODO Detect collision with other vehicles
+*** DONE Ensure vehicles don't overlap
+** DONE Detect collision with other vehicles
+** TODO Make cars in different lanes drive at different speeds
+** TODO Add restart option
+** TODO Display level on screen
** TODO Add weapon to player car
*** TODO Make weapon a power-up
*** TODO Make weapon use limited (bullet? time?)
diff --git a/turbo.scm b/turbo.scm
index 91d098f..15cae62 100644
--- a/turbo.scm
+++ b/turbo.scm
@@ -31,7 +31,9 @@
(define player-max-speed 20)
(define player-rotation 0)
-(define music-play? #f)
+(define level-difficulty 200)
+
+(define music-play? #t)
(define music-res (load-audio "music.ogg"))
(define music (make-source #:audio music-res #:loop? #t))
@@ -184,7 +186,7 @@
(+ 1 (random road-num-lanes))))
(set-vehicle-active! veh #f))
(if (and (not (vehicle-active? veh))
- (= 0 (random 200))
+ (= 0 (random level-difficulty))
(vehicle-has-spawn-space? veh))
(set-vehicle-active! veh #t))))
vehicles))))
@@ -225,7 +227,13 @@
((eq? key 'd)
(set-vehicle-speed! player-car (min (+ (vehicle-speed player-car) 1) player-max-speed)))
((eq? key 'escape)
- (abort-game))))
+ (abort-game))
+ ((and (eq? key 'return) game-over)
+ (set-vehicle-position! player-car initial-player-position)
+ (set-vehicle-speed! player-car (+ 1 player-min-speed))
+ (set! player-rotation 0)
+ ;; Reset all vehicles
+ (set! game-over #f))))
(define (key-release key modifiers)
(if (or (eq? key 'w) (eq? key 's))
diff --git a/turbo/vehicles.scm b/turbo/vehicles.scm
index 7bc1421..62b6a02 100644
--- a/turbo/vehicles.scm
+++ b/turbo/vehicles.scm
@@ -45,7 +45,7 @@
(let ((vehicle1-x (vec2-x (vehicle-position vehicle1)))
(vehicle2-x (vec2-x (vehicle-position vehicle2))))
(> vehicle2-x
- (+ (* 2 vehicle-length)
+ (+ (* 3 vehicle-length)
vehicle1-x))))
(define (vehicle-speed-diff vehicle1 vehicle2)