aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGene Pasquet <dev@etenil.net>2024-05-22 04:04:43 +0100
committerGene Pasquet <dev@etenil.net>2024-05-22 04:04:43 +0100
commit0764f57240efce7996070418000c56131fb22f62 (patch)
treeed4df9405d3f5d7b48ac82023ef8384d7623419b
parent8e9677a752e67a7dce870d7b3fdc694dd3295e4f (diff)
Add a nicer bitmap font
-rw-r--r--Makefile4
-rw-r--r--TODO.org15
-rw-r--r--thick_8x8.pngbin0 -> 1197 bytes
-rw-r--r--thick_8x8.xml276
-rw-r--r--turbo.scm22
5 files changed, 310 insertions, 7 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..02961ea
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,4 @@
+.PHONY: play
+play:
+ chickadee play turbo.scm
+
diff --git a/TODO.org b/TODO.org
index e5f17e0..c70be0b 100644
--- a/TODO.org
+++ b/TODO.org
@@ -6,6 +6,21 @@
*** 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
** TODO Add weapon to player car
*** TODO Make weapon a power-up
diff --git a/thick_8x8.png b/thick_8x8.png
new file mode 100644
index 0000000..8f5fd09
--- /dev/null
+++ b/thick_8x8.png
Binary files differ
diff --git a/thick_8x8.xml b/thick_8x8.xml
new file mode 100644
index 0000000..78f80c8
--- /dev/null
+++ b/thick_8x8.xml
@@ -0,0 +1,276 @@
+<?xml version="1.0"?>
+<font>
+ <info face="thick_8x8" size="10" bold="0" italic="0"/>
+ <common lineHeight="12" base="10" scaleW="104" scaleH="56" pages="1" packed="0"/>
+ <pages>
+ <page id="0" file="thick_8x8.png"/>
+ </pages>
+ <chars count="91">
+
+ <char id="65" x="0" y="0" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- A -->
+
+ <char id="66" x="8" y="0" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- B -->
+
+ <char id="67" x="16" y="0" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- C -->
+
+ <char id="68" x="24" y="0" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- D -->
+
+ <char id="69" x="32" y="0" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- E -->
+
+ <char id="70" x="40" y="0" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- F -->
+
+ <char id="71" x="48" y="0" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- G -->
+
+ <char id="72" x="56" y="0" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- H -->
+
+ <char id="73" x="64" y="0" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- I -->
+
+ <char id="74" x="72" y="0" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- J -->
+
+ <char id="75" x="80" y="0" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- K -->
+
+ <char id="76" x="88" y="0" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- L -->
+
+ <char id="77" x="96" y="0" width="8" height="8" page="0" xadvance="9" xoffset="0" yoffset="0"/>
+ <!-- M -->
+
+ <char id="78" x="0" y="8" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- N -->
+
+ <char id="79" x="8" y="8" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- O -->
+
+ <char id="80" x="16" y="8" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- P -->
+
+ <char id="81" x="24" y="8" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- Q -->
+
+ <char id="82" x="32" y="8" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- R -->
+
+ <char id="83" x="40" y="8" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- S -->
+
+ <char id="84" x="48" y="8" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- T -->
+
+ <char id="85" x="56" y="8" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- U -->
+
+ <char id="86" x="64" y="8" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- V -->
+
+ <char id="87" x="72" y="8" width="8" height="8" page="0" xadvance="9" xoffset="0" yoffset="0"/>
+ <!-- W -->
+
+ <char id="88" x="80" y="8" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- X -->
+
+ <char id="89" x="88" y="8" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- Y -->
+
+ <char id="90" x="96" y="8" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- Z -->
+
+ <char id="97" x="0" y="16" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- a -->
+
+ <char id="98" x="8" y="16" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- b -->
+
+ <char id="99" x="16" y="16" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- c -->
+
+ <char id="100" x="24" y="16" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- d -->
+
+ <char id="101" x="32" y="16" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- e -->
+
+ <char id="102" x="40" y="16" width="8" height="8" page="0" xadvance="7" xoffset="0" yoffset="0"/>
+ <!-- f -->
+
+ <char id="103" x="48" y="16" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- g -->
+
+ <char id="104" x="56" y="16" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- h -->
+
+ <char id="105" x="64" y="16" width="8" height="8" page="0" xadvance="5" xoffset="0" yoffset="0"/>
+ <!-- i -->
+
+ <char id="106" x="72" y="16" width="8" height="8" page="0" xadvance="7" xoffset="0" yoffset="0"/>
+ <!-- j -->
+
+ <char id="107" x="80" y="16" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- k -->
+
+ <char id="108" x="88" y="16" width="8" height="8" page="0" xadvance="5" xoffset="0" yoffset="0"/>
+ <!-- l -->
+
+ <char id="109" x="96" y="16" width="8" height="8" page="0" xadvance="9" xoffset="0" yoffset="0"/>
+ <!-- m -->
+
+ <char id="110" x="0" y="24" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- n -->
+
+ <char id="111" x="8" y="24" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- o -->
+
+ <char id="112" x="16" y="24" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- p -->
+
+ <char id="113" x="24" y="24" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- q -->
+
+ <char id="114" x="32" y="24" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- r -->
+
+ <char id="115" x="40" y="24" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- s -->
+
+ <char id="116" x="48" y="24" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- t -->
+
+ <char id="117" x="56" y="24" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- u -->
+
+ <char id="118" x="64" y="24" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- v -->
+
+ <char id="119" x="72" y="24" width="8" height="8" page="0" xadvance="9" xoffset="0" yoffset="0"/>
+ <!-- w -->
+
+ <char id="120" x="80" y="24" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- x -->
+
+ <char id="121" x="88" y="24" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- y -->
+
+ <char id="122" x="96" y="24" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- z -->
+
+ <char id="48" x="0" y="32" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- 0 -->
+
+ <char id="49" x="8" y="32" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- 1 -->
+
+ <char id="50" x="16" y="32" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- 2 -->
+
+ <char id="51" x="24" y="32" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- 3 -->
+
+ <char id="52" x="32" y="32" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- 4 -->
+
+ <char id="53" x="40" y="32" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- 5 -->
+
+ <char id="54" x="48" y="32" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- 6 -->
+
+ <char id="55" x="56" y="32" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- 7 -->
+
+ <char id="56" x="64" y="32" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- 8 -->
+
+ <char id="57" x="72" y="32" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- 9 -->
+
+ <char id="43" x="80" y="32" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- + -->
+
+ <char id="45" x="88" y="32" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- - -->
+
+ <char id="61" x="96" y="32" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- = -->
+
+ <char id="40" x="0" y="40" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- ( -->
+
+ <char id="41" x="8" y="40" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- ) -->
+
+ <char id="91" x="16" y="40" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- [ -->
+
+ <char id="93" x="24" y="40" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- ] -->
+
+ <char id="123" x="32" y="40" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- { -->
+
+ <char id="125" x="40" y="40" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- } -->
+
+ <char id="60" x="48" y="40" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- < -->
+
+ <char id="62" x="56" y="40" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- > -->
+
+ <char id="47" x="64" y="40" width="8" height="8" page="0" xadvance="6" xoffset="0" yoffset="0"/>
+ <!-- / -->
+
+ <char id="42" x="72" y="40" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- * -->
+
+ <char id="58" x="80" y="40" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- : -->
+
+ <char id="35" x="88" y="40" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- # -->
+
+ <char id="37" x="96" y="40" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- % -->
+
+ <char id="33" x="0" y="48" width="8" height="8" page="0" xadvance="4" xoffset="0" yoffset="0"/>
+ <!-- ! -->
+
+ <char id="63" x="8" y="48" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- ? -->
+
+ <char id="46" x="16" y="48" width="8" height="8" page="0" xadvance="4" xoffset="0" yoffset="0"/>
+ <!-- . -->
+
+ <char id="44" x="24" y="48" width="8" height="8" page="0" xadvance="6" xoffset="0" yoffset="0"/>
+ <!-- , -->
+
+ <char id="39" x="32" y="48" width="8" height="8" page="0" xadvance="4" xoffset="0" yoffset="0"/>
+ <!-- ' -->
+
+ <char id="34" x="40" y="48" width="8" height="8" page="0" xadvance="7" xoffset="0" yoffset="0"/>
+ <!-- " -->
+
+ <char id="64" x="48" y="48" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- @ -->
+
+ <char id="38" x="56" y="48" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- & -->
+
+ <char id="36" x="64" y="48" width="8" height="8" page="0" xadvance="8" xoffset="0" yoffset="0"/>
+ <!-- $ -->
+
+ <char id="32" x="72" y="48" width="8" height="8" page="0" xadvance="6" xoffset="0" yoffset="0"/>
+ <!-- -->
+
+ </chars>
+</font>
+ \ No newline at end of file
diff --git a/turbo.scm b/turbo.scm
index c90052a..400146b 100644
--- a/turbo.scm
+++ b/turbo.scm
@@ -8,6 +8,8 @@
;;;; Constants and variables
+(define the-font (load-bitmap-font "thick_8x8.xml"))
+
(define lane-height 65)
(define lane-length 192)
(define road-start-y 80)
@@ -184,11 +186,10 @@
(define (draw alpha)
(draw-road road-section-position road-start-y road-num-lanes)
- (draw-text "Turbo Racers!"
- (vec2 260.0 (- (window-height (current-window)) 25)))
-
- (draw-text (format #f "Speed: ~smph" (* player-speed 5))
- (vec2 450.0 20.0))
+ (draw-text "Turbo Racer 3000!"
+ (vec2 170.0 (- (window-height (current-window)) 25))
+ #:font the-font
+ #:scale (vec2 2 2))
(draw-sprite player-car player-position #:rotation player-rotation)
@@ -196,9 +197,16 @@
(if (vehicle-active? veh)
(draw-sprite (vehicle-sprite veh) (vehicle-position veh))))
vehicles)
-
+
+ (draw-text (format #f "Speed: ~smph" (* player-speed 5))
+ (vec2 450.0 20.0)
+ #:font the-font
+ #:scale (vec2 2 2))
+
(if game-over
- (draw-text "GAME OVER" (vec2 260 (/ (window-width (current-window)) 2)))))
+ (draw-text "GAME OVER" (vec2 260 (/ (window-width (current-window)) 2))
+ #:font the-font
+ #:scale (vec2 2 2))))
(define (key-press key modifiers repeat?)