aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitattributes2
-rw-r--r--Makefile2
-rw-r--r--TODO.org6
-rw-r--r--fonts/thick_8x8.pngbin1197 -> 129 bytes
-rw-r--r--graphics-src/car-blue.ase3
-rw-r--r--graphics-src/car-green.ase3
-rw-r--r--graphics-src/car.ase3
-rw-r--r--graphics-src/car.pngbin1192 -> 129 bytes
-rw-r--r--graphics-src/palette.ase3
-rw-r--r--graphics-src/pick-up-blue.ase3
-rw-r--r--graphics-src/pick-up-green.ase3
-rw-r--r--graphics-src/pick-up-red.ase3
-rw-r--r--graphics-src/pick-up-yellow.ase3
-rw-r--r--graphics-src/pick-up.ase3
-rw-r--r--graphics-src/player-car.ase3
-rw-r--r--graphics-src/player-car.gifbin0 -> 2305 bytes
-rw-r--r--graphics-src/player-car.pngbin765 -> 129 bytes
-rw-r--r--graphics-src/road.ase3
-rw-r--r--graphics-src/tractor.pngbin1155 -> 129 bytes
-rw-r--r--graphics-src/truck-blue.ase3
-rw-r--r--graphics-src/truck-green.ase3
-rw-r--r--graphics-src/truck-yellow.ase3
-rw-r--r--graphics-src/truck.ase3
-rw-r--r--graphics-src/truck.pngbin640 -> 129 bytes
-rw-r--r--sprites/7segment-background.pngbin160 -> 128 bytes
-rw-r--r--sprites/dash-background.pngbin303 -> 128 bytes
-rw-r--r--sprites/grass.pngbin3706 -> 128 bytes
-rw-r--r--sprites/lamps.png3
-rw-r--r--sprites/road.pngbin2091 -> 128 bytes
-rw-r--r--sprites/vehicles.pngbin6438 -> 130 bytes
-rw-r--r--turbo-icon.pngbin38216 -> 130 bytes
-rw-r--r--turbo.scm274
32 files changed, 224 insertions, 108 deletions
diff --git a/.gitattributes b/.gitattributes
index cb1555c..49bf92c 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1 +1,3 @@
*.AppImage filter=lfs diff=lfs merge=lfs -text
+*.png filter=lfs diff=lfs merge=lfs -text
+*.ase filter=lfs diff=lfs merge=lfs -text
diff --git a/Makefile b/Makefile
index 425d612..b0b70a2 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
turbo.go: turbo.scm
- guild compile -o turbo.go turbo.scm
+ guild compile -o turbo.scm.go turbo.scm
.PHONY: play
play:
diff --git a/TODO.org b/TODO.org
index 1e5690a..e0a4151 100644
--- a/TODO.org
+++ b/TODO.org
@@ -23,7 +23,11 @@
** TODO Add weapon to player car
*** TODO Make weapon a power-up
*** TODO Make weapon use limited (bullet? time?)
-** DONE Improve visuals
+** TODO Improve visuals
+*** STARTED Use animated sprites
+*** TODO Change theme to night time
+*** TODO Add public lighting
+*** TODO Neons!
** TODO Reduce lanes to 3 from level 10
*** TODO Handle vehicles lane change for reductions
** DONE Add music
diff --git a/fonts/thick_8x8.png b/fonts/thick_8x8.png
index 8f5fd09..836c0b4 100644
--- a/fonts/thick_8x8.png
+++ b/fonts/thick_8x8.png
Binary files differ
diff --git a/graphics-src/car-blue.ase b/graphics-src/car-blue.ase
new file mode 100644
index 0000000..947b250
--- /dev/null
+++ b/graphics-src/car-blue.ase
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fab4f9299fd3c4076e5628554b3c3bd0f5c2acc722f43ef8dad48570cf95f22b
+size 2050
diff --git a/graphics-src/car-green.ase b/graphics-src/car-green.ase
new file mode 100644
index 0000000..0662f52
--- /dev/null
+++ b/graphics-src/car-green.ase
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:703dfce4b80d9e33602e291eb343569b87170832efc8e2d96c5b7613d37f43ae
+size 2048
diff --git a/graphics-src/car.ase b/graphics-src/car.ase
new file mode 100644
index 0000000..a90b32a
--- /dev/null
+++ b/graphics-src/car.ase
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:464e6d0da27a0ecaca2f87ef2cedf66e51a2f583eee814bb1e4a589a0e943c92
+size 2051
diff --git a/graphics-src/car.png b/graphics-src/car.png
index e05f52d..eaeefa2 100644
--- a/graphics-src/car.png
+++ b/graphics-src/car.png
Binary files differ
diff --git a/graphics-src/palette.ase b/graphics-src/palette.ase
new file mode 100644
index 0000000..0c9f1f1
--- /dev/null
+++ b/graphics-src/palette.ase
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bd3d4e310205761d68e509ca9d1862939060612120ec319064b41f86d45ac708
+size 565
diff --git a/graphics-src/pick-up-blue.ase b/graphics-src/pick-up-blue.ase
new file mode 100644
index 0000000..da07356
--- /dev/null
+++ b/graphics-src/pick-up-blue.ase
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8dd6d868790a8a29e04c4a67fd890e7486f07c331a9218a3c53a7fb54bf5b107
+size 1576
diff --git a/graphics-src/pick-up-green.ase b/graphics-src/pick-up-green.ase
new file mode 100644
index 0000000..f4cc7be
--- /dev/null
+++ b/graphics-src/pick-up-green.ase
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e42ec77e9ba827180f8f841ccc8ce3b8d9b3603b9ddce21fc640729fe808c73f
+size 1576
diff --git a/graphics-src/pick-up-red.ase b/graphics-src/pick-up-red.ase
new file mode 100644
index 0000000..a28684d
--- /dev/null
+++ b/graphics-src/pick-up-red.ase
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:23a87adeaf7a65b9b8d9933fefed3630ed32e415c388b9a7d165c9b4f3cacb4f
+size 1579
diff --git a/graphics-src/pick-up-yellow.ase b/graphics-src/pick-up-yellow.ase
new file mode 100644
index 0000000..4e93abd
--- /dev/null
+++ b/graphics-src/pick-up-yellow.ase
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:11a835ede0f973ad1d16f2cb3f287a7a8e71644c3518daf26761a53e77d1a91a
+size 1576
diff --git a/graphics-src/pick-up.ase b/graphics-src/pick-up.ase
new file mode 100644
index 0000000..da07356
--- /dev/null
+++ b/graphics-src/pick-up.ase
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8dd6d868790a8a29e04c4a67fd890e7486f07c331a9218a3c53a7fb54bf5b107
+size 1576
diff --git a/graphics-src/player-car.ase b/graphics-src/player-car.ase
new file mode 100644
index 0000000..a522f33
--- /dev/null
+++ b/graphics-src/player-car.ase
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1c26e08b2c4795f296327aedd4ab778a76f0b5827f722d7731a682cd51c75f24
+size 1862
diff --git a/graphics-src/player-car.gif b/graphics-src/player-car.gif
new file mode 100644
index 0000000..8bdd64d
--- /dev/null
+++ b/graphics-src/player-car.gif
Binary files differ
diff --git a/graphics-src/player-car.png b/graphics-src/player-car.png
index e67cbd7..514f371 100644
--- a/graphics-src/player-car.png
+++ b/graphics-src/player-car.png
Binary files differ
diff --git a/graphics-src/road.ase b/graphics-src/road.ase
new file mode 100644
index 0000000..3b547a0
--- /dev/null
+++ b/graphics-src/road.ase
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5fe65e62c0859ee3b347277e4ece5aa7ea5194e10e5e0c4ba37145c8b450c818
+size 1267
diff --git a/graphics-src/tractor.png b/graphics-src/tractor.png
index b3a88b6..570268b 100644
--- a/graphics-src/tractor.png
+++ b/graphics-src/tractor.png
Binary files differ
diff --git a/graphics-src/truck-blue.ase b/graphics-src/truck-blue.ase
new file mode 100644
index 0000000..63f3023
--- /dev/null
+++ b/graphics-src/truck-blue.ase
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8b69869209a21362993f0112523566a42a7e8c0130bc3f7b28f0fee684ea9c13
+size 1896
diff --git a/graphics-src/truck-green.ase b/graphics-src/truck-green.ase
new file mode 100644
index 0000000..c2191ef
--- /dev/null
+++ b/graphics-src/truck-green.ase
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:31ae31621df91cf632a497798aff9676741127088e74c0cc2df6457ee2efe961
+size 1892
diff --git a/graphics-src/truck-yellow.ase b/graphics-src/truck-yellow.ase
new file mode 100644
index 0000000..1f5fdf6
--- /dev/null
+++ b/graphics-src/truck-yellow.ase
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:19b05d33fcd9291e9328d66e59c11d64631d704d2d8ea97e091c63f5246818e8
+size 1898
diff --git a/graphics-src/truck.ase b/graphics-src/truck.ase
new file mode 100644
index 0000000..f59f1e7
--- /dev/null
+++ b/graphics-src/truck.ase
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1fac13d3b80de4c91360820ad77d7a920a7e2b4ff1d235454d0a4069e3dc87a4
+size 1897
diff --git a/graphics-src/truck.png b/graphics-src/truck.png
index d06c230..e2a23cf 100644
--- a/graphics-src/truck.png
+++ b/graphics-src/truck.png
Binary files differ
diff --git a/sprites/7segment-background.png b/sprites/7segment-background.png
index 56c1edd..cbf108f 100644
--- a/sprites/7segment-background.png
+++ b/sprites/7segment-background.png
Binary files differ
diff --git a/sprites/dash-background.png b/sprites/dash-background.png
index abb8e60..4db786c 100644
--- a/sprites/dash-background.png
+++ b/sprites/dash-background.png
Binary files differ
diff --git a/sprites/grass.png b/sprites/grass.png
index 64d1261..f968bd8 100644
--- a/sprites/grass.png
+++ b/sprites/grass.png
Binary files differ
diff --git a/sprites/lamps.png b/sprites/lamps.png
new file mode 100644
index 0000000..bc0b70e
--- /dev/null
+++ b/sprites/lamps.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6bf80f88dc7634561a9859b1d1204a049a96c0a2cb6ed06766c50be7c6f1feb6
+size 380
diff --git a/sprites/road.png b/sprites/road.png
index c85bc43..7ce2012 100644
--- a/sprites/road.png
+++ b/sprites/road.png
Binary files differ
diff --git a/sprites/vehicles.png b/sprites/vehicles.png
index 5baa20e..e97d23f 100644
--- a/sprites/vehicles.png
+++ b/sprites/vehicles.png
Binary files differ
diff --git a/turbo-icon.png b/turbo-icon.png
index 328eea7..c195b70 100644
--- a/turbo-icon.png
+++ b/turbo-icon.png
Binary files differ
diff --git a/turbo.scm b/turbo.scm
index 1d0d293..34b8e0b 100644
--- a/turbo.scm
+++ b/turbo.scm
@@ -13,6 +13,40 @@
(srfi srfi-1))
+(define-record-type <animated-sprite>
+ (make-animated-sprite sprites fps timer running?)
+ animated-sprite?
+ (sprites animated-sprite-sprites)
+ (fps animated-sprite-fps)
+ (timer animated-sprite-timer set-animated-sprite-timer!)
+ (running? animated-sprite-running? set-animated-sprite-running!))
+
+(define (make-asprite sprites fps)
+ (make-animated-sprite sprites fps 0 #t))
+
+(define (animated-sprite-frame-time sprite)
+ (/ 1 (animated-sprite-fps sprite)))
+
+(define (animated-sprite-max-timer sprite)
+ (let ((frame-time (animated-sprite-frame-time sprite)))
+ (* frame-time (length (animated-sprite-sprites sprite)))))
+
+(define (animated-sprite-animate! sprite elapsed-time)
+ (let ((timer (+ (animated-sprite-timer sprite) elapsed-time))
+ (max-timer (animated-sprite-max-timer sprite)))
+ (set-animated-sprite-timer! sprite (if (>= timer max-timer)
+ (- max-timer timer)
+ timer))))
+
+(define (animated-sprite->sprite sprite)
+ (if (animated-sprite-running? sprite)
+ (let* ((timer (animated-sprite-timer sprite))
+ (frame-time (animated-sprite-frame-time sprite))
+ (index (inexact->exact (floor (/ timer frame-time))))
+ (sprite-ref (min (max 0 index) (- (length (animated-sprite-sprites sprite)) 1))))
+ (list-ref (animated-sprite-sprites sprite) sprite-ref))
+ (list-ref (animated-sprite-sprites sprite) 0)))
+
;;;; Vehicles module
(define vehicle-height 44)
(define vehicle-length 100)
@@ -73,6 +107,7 @@
(define road-start-y 80)
(define road-section-position 0)
(define road #f)
+(define lamps #f)
(define road-num-lanes 5)
(define road-end-y (+ road-start-y (* road-num-lanes lane-height)))
(define road-top #f)
@@ -124,13 +159,16 @@
(define (make-vehicle-list vehicle-list tile-ref)
(if (< tile-ref (texture-atlas-size vehicles-sprites))
- (cons (make-inactive-vehicle (* 2 tile-ref)
- (texture-atlas-ref vehicles-sprites tile-ref)
- (random-lane-start-pos))
- (cons (make-inactive-vehicle (+ 1 (* 2 tile-ref))
- (texture-atlas-ref vehicles-sprites tile-ref)
- (random-lane-start-pos))
- (make-vehicle-list vehicle-list (+ tile-ref 1))))
+ (cons (make-inactive-vehicle
+ tile-ref
+ (make-asprite
+ (list (texture-atlas-ref vehicles-sprites tile-ref)
+ (texture-atlas-ref vehicles-sprites (+ 1 tile-ref))
+ (texture-atlas-ref vehicles-sprites (+ 2 tile-ref))
+ (texture-atlas-ref vehicles-sprites (+ 3 tile-ref)))
+ 6)
+ (random-lane-start-pos))
+ (make-vehicle-list vehicle-list (+ tile-ref 4)))
vehicle-list))
(define (vehicle-reset-ahead veh)
@@ -180,6 +218,14 @@
(draw-road (+ startx lane-length) starty num-lanes)
(draw-grass-up startx (+ starty (* lane-height num-lanes)))))
+(define (draw-lamps startx starty num-lanes)
+ (when (< startx (window-width (current-window)))
+ (draw-sprite (texture-atlas-ref lamps 0) (vec2 startx starty))
+ (draw-sprite (texture-atlas-ref lamps 1) (vec2 startx (+ starty (* lane-height (- num-lanes 1)))))
+ (draw-lamps (+ startx lane-length) starty num-lanes)))
+
+(display "KOIN\n")
+
(define (lane-y num-lane)
(+ road-start-y
(* lane-height (- num-lane 1))))
@@ -268,6 +314,7 @@
(set! the-font (load-bitmap-font (asset-path "fonts/thick_8x8.xml")))
(set! font-7-segments (load-font (asset-path "fonts/DSEG7Classic-Regular.ttf") 24))
(set! road (load-tileset (asset-path "sprites/road.png") lane-length lane-height))
+ (set! lamps (load-tileset (asset-path "sprites/lamps.png") lane-length lane-height))
(set! road-top (texture-atlas-ref road 2))
(set! road-bottom (texture-atlas-ref road 0))
(set! road-lane (texture-atlas-ref road 1))
@@ -283,7 +330,13 @@
(/ (- lane-height vehicle-height) 2))))
(set! player-car (make-vehicle
0
- (texture-atlas-ref vehicles-sprites 0)
+ (make-asprite
+ (list
+ (texture-atlas-ref vehicles-sprites 0)
+ (texture-atlas-ref vehicles-sprites 1)
+ (texture-atlas-ref vehicles-sprites 2)
+ (texture-atlas-ref vehicles-sprites 3))
+ 8)
initial-player-position
(+ 1 player-min-speed)
#t))
@@ -295,7 +348,7 @@
(set! engine-sound (make-source #:audio engine-res #:loop? #t))
(set-source-volume! music 0.3)
- (set! vehicles (make-vehicle-list (list) 1))
+ (set! vehicles (make-vehicle-list (list) 4))
(for-each vehicle-reset-ahead vehicles)
(set-vehicle-active! (car vehicles) #t)
@@ -323,6 +376,8 @@
(* player-current-acceleration interval))))
(set-player-speed! new-speed))
+ (animated-sprite-animate! (vehicle-sprite player-car) interval)
+
(when (and game-started? (player-collides?))
(off-road-player)
;; TODO: Think of different animation for this game over
@@ -337,6 +392,7 @@
player-velocity))
(for-each (lambda (veh)
+ (animated-sprite-animate! (vehicle-sprite veh) interval)
(vehicle-move! veh (vec2 (- (* interval (vehicle-speed- player-car veh))) 0)))
(filter vehicle-active? vehicles))
@@ -360,7 +416,8 @@
(draw-road road-section-position road-start-y road-num-lanes)
(for-each (lambda (veh)
- (draw-sprite (vehicle-sprite veh) (vehicle-position veh)))
+ (draw-sprite (animated-sprite->sprite (vehicle-sprite veh))
+ (vehicle-position veh)))
(filter vehicle-active? vehicles))
(let loop ((index 0))
@@ -368,113 +425,118 @@
(when (< (+ index (texture-width dash-background)) (window-width (current-window)))
(loop (+ index (texture-width dash-background)))))
- (draw-sprite (vehicle-sprite player-car) (vehicle-position player-car) #:rotation player-rotation)
+ (draw-sprite (animated-sprite->sprite (vehicle-sprite player-car))
+ (vehicle-position player-car)
+ #:rotation player-rotation)
+
+ (draw-lamps road-section-position road-start-y road-num-lanes)
+
(unless game-started?
- (let ((window-top (window-height (current-window))))
- (cond
- (show-credits?
- (let ((left-margin 60)
- (top-start 125)
- (gap 25))
- (draw-text "TURBO RACER 3000!"
- (vec2 left-margin (- window-top top-start))
- #:font the-font
- #:scale (vec2 4 4)
- #:color red)
- (draw-text "DEVELOPMENT: Gene Pasquet"
- (vec2 left-margin (- window-top (+ top-start gap)))
- #:font the-font
- #:scale (vec2 2 2))
- (draw-text "DESIGN: Owen Pasquet"
- (vec2 left-margin (- window-top (+ top-start (* 2 gap))))
- #:font the-font
- #:scale (vec2 2 2))
- (draw-text "PLAY TESTING: Owen Pasquet"
- (vec2 left-margin (- window-top (+ top-start (* 3 gap))))
- #:font the-font
- #:scale (vec2 2 2))
- (draw-text "MUSIC: Instrumental by Aries Beats"
- (vec2 left-margin (- window-top (+ top-start (* 4 gap))))
- #:font the-font
- #:scale (vec2 2 2))
- (draw-text "FONTS: Keshikan"
- (vec2 left-margin (- window-top (+ top-start (* 5 gap))))
- #:font the-font
- #:scale (vec2 2 2))
- (draw-text "SOUND: qubodup"
- (vec2 left-margin (- window-top (+ top-start (* 6 gap))))
- #:font the-font
- #:scale (vec2 2 2))
- (draw-text "BACK"
- (vec2 250 (- window-top 330))
- #:font the-font
- #:scale (vec2 2 2)
- #:color yellow)))
- (show-help?
- (let ((left-margin 60)
- (top-start 125)
- (gap 25))
- (draw-text "TURBO RACER 3000!"
- (vec2 left-margin (- window-top top-start))
- #:font the-font
- #:scale (vec2 4 4)
- #:color red)
- (draw-text "Complete 10miles fast!"
- (vec2 left-margin (- window-top (+ top-start gap)))
- #:font the-font
- #:scale (vec2 2 2))
- (draw-text "Arrow keys or WASD control the car."
- (vec2 left-margin (- window-top (+ top-start (* 2 gap))))
- #:font the-font
- #:scale (vec2 2 2))
- (draw-text "ESCAPE for the main menu"
- (vec2 left-margin (- window-top (+ top-start (* 3 gap))))
- #:font the-font
- #:scale (vec2 2 2))
- (draw-text ""
- (vec2 left-margin (- window-top (+ top-start (* 4 gap))))
- #:font the-font
- #:scale (vec2 2 2))
- (draw-text ""
- (vec2 left-margin (- window-top (+ top-start (* 5 gap))))
- #:font the-font
- #:scale (vec2 2 2))
- (draw-text ""
- (vec2 left-margin (- window-top (+ top-start (* 6 gap))))
- #:font the-font
- #:scale (vec2 2 2))
- (draw-text "BACK"
- (vec2 250 (- window-top 330))
- #:font the-font
- #:scale (vec2 2 2)
- #:color yellow)))
- (else
- ;; Draw the menu
+ (let ((window-top (window-height (current-window))))
+ (cond
+ (show-credits?
+ (let ((left-margin 60)
+ (top-start 125)
+ (gap 25))
(draw-text "TURBO RACER 3000!"
- (vec2 60 (- window-top 125))
+ (vec2 left-margin (- window-top top-start))
#:font the-font
#:scale (vec2 4 4)
#:color red)
- (draw-text "NEW GAME"
- (vec2 250 (- window-top 250))
+ (draw-text "DEVELOPMENT: Gene Pasquet"
+ (vec2 left-margin (- window-top (+ top-start gap)))
#:font the-font
- #:scale (vec2 2 2)
- #:color (if (= menu-selection 0) yellow white))
- (draw-text "CREDITS"
- (vec2 250 (- window-top 270))
+ #:scale (vec2 2 2))
+ (draw-text "DESIGN: Owen Pasquet"
+ (vec2 left-margin (- window-top (+ top-start (* 2 gap))))
#:font the-font
- #:scale (vec2 2 2)
- #:color (if (= menu-selection 1) yellow white))
- (draw-text "HELP"
- (vec2 250 (- window-top 290))
+ #:scale (vec2 2 2))
+ (draw-text "PLAY TESTING: Owen Pasquet"
+ (vec2 left-margin (- window-top (+ top-start (* 3 gap))))
+ #:font the-font
+ #:scale (vec2 2 2))
+ (draw-text "MUSIC: Instrumental by Aries Beats"
+ (vec2 left-margin (- window-top (+ top-start (* 4 gap))))
+ #:font the-font
+ #:scale (vec2 2 2))
+ (draw-text "FONTS: Keshikan"
+ (vec2 left-margin (- window-top (+ top-start (* 5 gap))))
+ #:font the-font
+ #:scale (vec2 2 2))
+ (draw-text "SOUND: qubodup"
+ (vec2 left-margin (- window-top (+ top-start (* 6 gap))))
+ #:font the-font
+ #:scale (vec2 2 2))
+ (draw-text "BACK"
+ (vec2 250 (- window-top 330))
#:font the-font
#:scale (vec2 2 2)
- #:color (if (= menu-selection 2) yellow white))
- (draw-text "QUIT"
- (vec2 250 (- window-top 350))
+ #:color yellow)))
+ (show-help?
+ (let ((left-margin 60)
+ (top-start 125)
+ (gap 25))
+ (draw-text "TURBO RACER 3000!"
+ (vec2 left-margin (- window-top top-start))
+ #:font the-font
+ #:scale (vec2 4 4)
+ #:color red)
+ (draw-text "Complete 10miles fast!"
+ (vec2 left-margin (- window-top (+ top-start gap)))
+ #:font the-font
+ #:scale (vec2 2 2))
+ (draw-text "Arrow keys or WASD control the car."
+ (vec2 left-margin (- window-top (+ top-start (* 2 gap))))
+ #:font the-font
+ #:scale (vec2 2 2))
+ (draw-text "ESCAPE for the main menu"
+ (vec2 left-margin (- window-top (+ top-start (* 3 gap))))
+ #:font the-font
+ #:scale (vec2 2 2))
+ (draw-text ""
+ (vec2 left-margin (- window-top (+ top-start (* 4 gap))))
+ #:font the-font
+ #:scale (vec2 2 2))
+ (draw-text ""
+ (vec2 left-margin (- window-top (+ top-start (* 5 gap))))
+ #:font the-font
+ #:scale (vec2 2 2))
+ (draw-text ""
+ (vec2 left-margin (- window-top (+ top-start (* 6 gap))))
+ #:font the-font
+ #:scale (vec2 2 2))
+ (draw-text "BACK"
+ (vec2 250 (- window-top 330))
#:font the-font
#:scale (vec2 2 2)
- #:color (if (= menu-selection 3) yellow white))))))
+ #:color yellow)))
+ (else
+ ;; Draw the menu
+ (draw-text "TURBO RACER 3000!"
+ (vec2 60 (- window-top 125))
+ #:font the-font
+ #:scale (vec2 4 4)
+ #:color red)
+ (draw-text "NEW GAME"
+ (vec2 250 (- window-top 250))
+ #:font the-font
+ #:scale (vec2 2 2)
+ #:color (if (= menu-selection 0) yellow white))
+ (draw-text "CREDITS"
+ (vec2 250 (- window-top 270))
+ #:font the-font
+ #:scale (vec2 2 2)
+ #:color (if (= menu-selection 1) yellow white))
+ (draw-text "HELP"
+ (vec2 250 (- window-top 290))
+ #:font the-font
+ #:scale (vec2 2 2)
+ #:color (if (= menu-selection 2) yellow white))
+ (draw-text "QUIT"
+ (vec2 250 (- window-top 350))
+ #:font the-font
+ #:scale (vec2 2 2)
+ #:color (if (= menu-selection 3) yellow white))))))
(draw-sprite dash-7seg-background (vec2 270 0))