From b18c2d0643899d5ed44a01285c49875491e4bf1f Mon Sep 17 00:00:00 2001 From: Gene Pasquet Date: Wed, 22 May 2024 17:17:51 +0100 Subject: Fix vehicle spawning code and different lane speeds --- TODO.org | 6 ++++-- turbo.scm | 15 +++++++++------ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/TODO.org b/TODO.org index ff2b60d..7f4497a 100644 --- a/TODO.org +++ b/TODO.org @@ -7,8 +7,10 @@ *** DONE Add multiple vehicles on different lanes *** 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 +** DONE Make cars in different lanes drive at different speeds +** DONE Add restart option +** TODO Smooth acceleration +** TODO Smooth increasing turn rate ** TODO Display level on screen ** TODO Add weapon to player car *** TODO Make weapon a power-up diff --git a/turbo.scm b/turbo.scm index 2611e19..92c5103 100644 --- a/turbo.scm +++ b/turbo.scm @@ -31,7 +31,7 @@ (define player-max-speed 20) (define player-rotation 0) -(define level-difficulty 200) +(define level-difficulty 50) (define music-play? #t) (define music-res (load-audio "music.ogg")) @@ -59,7 +59,15 @@ (make-vehicle-list vehicle-list (+ tile-ref 1)))) vehicle-list)) +(define (vehicle-reset-ahead veh) + (let ((lane-num (random road-num-lanes))) + (set-vehicle-position! veh (calculate-vehicle-position + (+ 1 lane-num))) + (set-vehicle-speed! veh (+ player-min-speed lane-num) ) + (set-vehicle-active! veh #f))) + (define vehicles (make-vehicle-list (list) 0)) +(for-each vehicle-reset-ahead vehicles) ;; Important: set one vehicle active to bootstrap the game ???? ;; TODO: nope, bug here somewhere! @@ -159,11 +167,6 @@ (and vehicle-active? (>= (- 0 vehicle-length) (vec2-x (vehicle-position veh))))) -(define (vehicle-reset-ahead veh) - (set-vehicle-position! veh (calculate-vehicle-position - (+ 1 (random road-num-lanes)))) - (set-vehicle-active! veh #f)) - ;;;; Chickadee hooks (set-source-volume! music 0.5) -- cgit v1.2.3