diff options
author | Gene Pasquet <dev@etenil.net> | 2024-05-22 11:33:09 +0100 |
---|---|---|
committer | Gene Pasquet <dev@etenil.net> | 2024-05-22 11:33:09 +0100 |
commit | 5c25d3d8ae7ccaa0476f88f1dfdb782c130b6f4e (patch) | |
tree | e076918718b44de3632efe23c3a1e7d6fdc07391 | |
parent | 523ed18352463ddea29bf0a97a65ca40b40cf420 (diff) |
Lightweight reset, little adjustements
-rw-r--r-- | TODO.org | 24 | ||||
-rw-r--r-- | turbo.scm | 14 | ||||
-rw-r--r-- | turbo/vehicles.scm | 2 |
3 files changed, 18 insertions, 22 deletions
@@ -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?) @@ -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) |