diff options
author | Gene Pasquet <dev@etenil.net> | 2024-05-22 04:04:43 +0100 |
---|---|---|
committer | Gene Pasquet <dev@etenil.net> | 2024-05-22 04:04:43 +0100 |
commit | 0764f57240efce7996070418000c56131fb22f62 (patch) | |
tree | ed4df9405d3f5d7b48ac82023ef8384d7623419b | |
parent | 8e9677a752e67a7dce870d7b3fdc694dd3295e4f (diff) |
Add a nicer bitmap font
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | TODO.org | 15 | ||||
-rw-r--r-- | thick_8x8.png | bin | 0 -> 1197 bytes | |||
-rw-r--r-- | thick_8x8.xml | 276 | ||||
-rw-r--r-- | turbo.scm | 22 |
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 + @@ -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 Binary files differnew file mode 100644 index 0000000..8f5fd09 --- /dev/null +++ b/thick_8x8.png 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 @@ -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?) |