aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGene Pasquet <dev@etenil.net>2024-05-19 09:20:34 +0100
committerGene Pasquet <dev@etenil.net>2024-05-19 09:20:34 +0100
commitbcb58e9a7d929fdda1b9b3a9e8b36ac864a70316 (patch)
treea2ca411dda14e721f3ba3f60cabd5bd802e1e4c0
parenta380feb559194c5f5d1e2d0287d88c633eda732f (diff)
Limit and display car speed
-rw-r--r--turbo.scm24
1 files changed, 14 insertions, 10 deletions
diff --git a/turbo.scm b/turbo.scm
index 3c5b194..367b03c 100644
--- a/turbo.scm
+++ b/turbo.scm
@@ -1,7 +1,8 @@
(use-modules (chickadee graphics sprite)
(chickadee)
(chickadee graphics viewport)
- (ice-9 pretty-print))
+ (ice-9 pretty-print)
+ (ice-9 format))
(define lane-height 65)
(define lane-length 200)
@@ -38,10 +39,11 @@
(define selected-car (texture-atlas-ref vehicles 0))
(define car-pos-x 0.0)
-(define car-speed 4.0)
-(define car-steering 4.0)
+(define car-steering-speed 4.0)
(define player-velocity (vec2 0 0))
-(define road-velocity 4)
+(define road-min-speed 4)
+(define road-max-speed 20)
+(define road-speed road-min-speed)
(define road-position 0)
(define player-position
@@ -51,11 +53,13 @@
(define (draw alpha)
(set! road-position (if (< road-position (* lane-length -1))
- (- (+ road-position lane-length) road-velocity)
- (- road-position road-velocity)))
+ (- (+ road-position lane-length) road-speed)
+ (- road-position road-speed)))
(draw-road road-position road-start-y 5)
(draw-text "Turbo Racers!" (vec2 260.0 (- (window-height (current-window)) 25)))
+ (draw-text (format #f "Speed: ~smph" (* road-speed 5))
+ (vec2 450.0 20.0))
(set! player-position (vec2+ player-position player-velocity))
@@ -63,13 +67,13 @@
(define (key-press key modifiers repeat?)
(if (eq? key 'w)
- (set! player-velocity (vec2 0 car-steering)))
+ (set! player-velocity (vec2 0 car-steering-speed)))
(if (eq? key 's)
- (set! player-velocity (vec2 0 (* car-steering -1))))
+ (set! player-velocity (vec2 0 (* car-steering-speed -1))))
(if (eq? key 'a)
- (set! road-velocity (- road-velocity 1)))
+ (set! road-speed (max (- road-speed 1) road-min-speed)))
(if (eq? key 'd)
- (set! road-velocity (+ road-velocity 1)))
+ (set! road-speed (min (+ road-speed 1) road-max-speed)))
)
(define (key-release key modifiers)