From d3454d9954393626a42e99cdb2a28481408b674f Mon Sep 17 00:00:00 2001 From: Gene Pasquet Date: Thu, 23 May 2024 20:11:29 +0100 Subject: Calculate and display distance --- TODO.org | 5 +++-- turbo.scm | 15 ++++++++++++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/TODO.org b/TODO.org index aafd919..bd5db55 100644 --- a/TODO.org +++ b/TODO.org @@ -10,9 +10,10 @@ ** DONE Make cars in different lanes drive at different speeds ** DONE Add restart option ** DONE Smooth acceleration -** TODO Measure traveled distance +** DONE Measure traveled distance ** TODO Smooth increasing turn rate -** STARTED Display level on screen +** DONE Display level on screen +** TODO Level up automatically ** 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 fee5553..09b9d4c 100644 --- a/turbo.scm +++ b/turbo.scm @@ -35,6 +35,7 @@ ;; 4px/s/s deceleration (define player-car-deceleration -500) (define player-current-acceleration 0) +(define player-distance-travelled 0) (define level-difficulty 1) @@ -184,6 +185,9 @@ (off-road-player) (set! game-over #t)) + + (set! player-distance-travelled (+ player-distance-travelled (* interval (vehicle-speed player-car)))) + (let ((new-speed (+ (vehicle-speed player-car) (* player-current-acceleration interval)))) (set-vehicle-speed! player-car (min player-max-speed @@ -226,7 +230,7 @@ (define (draw alpha) (draw-road road-section-position road-start-y road-num-lanes) (draw-text "Turbo Racer 3000!" - (vec2 170.0 (- (window-height (current-window)) 25)) + (vec2 300.0 (- (window-height (current-window)) 25)) #:font the-font #:scale (vec2 2 2)) @@ -236,6 +240,11 @@ (draw-sprite (vehicle-sprite veh) (vehicle-position veh))) (filter vehicle-active? vehicles)) + (draw-text (format #f "Distance: ~1,1fmi" (/ player-distance-travelled 12440)) + (vec2 30.0 (- (window-height (current-window)) 25)) + #:font the-font + #:scale (vec2 2 2)) + (draw-text (format #f "Speed: ~smph" (round (* (vehicle-speed player-car) 0.11187))) (vec2 400.0 20.0) #:font the-font @@ -245,12 +254,12 @@ (vec2 30.0 20.0) #:font the-font #:scale (vec2 2 2)) - + (if game-over (draw-text "GAME OVER" (vec2 260 (/ (window-width (current-window)) 2)) #:font the-font #:scale (vec2 2 2)))) - + (define (key-press key modifiers repeat?) (cond -- cgit v1.2.3