From 5c25d3d8ae7ccaa0476f88f1dfdb782c130b6f4e Mon Sep 17 00:00:00 2001 From: Gene Pasquet Date: Wed, 22 May 2024 11:33:09 +0100 Subject: Lightweight reset, little adjustements --- TODO.org | 24 ++++++------------------ turbo.scm | 14 +++++++++++--- turbo/vehicles.scm | 2 +- 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) -- cgit v1.2.3