aboutsummaryrefslogtreecommitdiff
path: root/demo/spritefont.scm
blob: 261de7319a8d1bb801931dcc910a8720b2ee147f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
(import scheme
        (chicken base)
        (prefix sdl2 "sdl2:")
        (prefix sdl2-ttf "ttf:")
        (prefix sdl2-image "img:")
        (downstroke engine)
        (downstroke world)
        (downstroke tilemap)
        (downstroke renderer)
        (downstroke assets)
        (downstroke scene-loader))

(define *sprite-font* #f)

(define *game*
  (make-game
   title: "Demo: Sprite Font" width: 600 height: 400

   create: (lambda (game)
             (game-load-scene! game "demo/assets/level-0.tmx")
             (set! *sprite-font*
               (make-sprite-font*
                #:tile-size 16 #:spacing 1
                #:ranges '((#\A #\M 918) (#\N #\Z 967) (#\0 #\9 869)))))

   render: (lambda (game)
             (let* ((scene   (game-scene game))
                    (renderer (game-renderer game))
                    (tileset  (tilemap-tileset (scene-tilemap scene)))
                    (texture  (scene-tileset-texture scene)))
               (set! (sdl2:render-draw-color renderer) (sdl2:make-color 30 30 60 255))
               (sdl2:render-fill-rect! renderer (sdl2:make-rect 0 0 600 400))
               (for-each
                (lambda (entry)
                  (draw-sprite-text renderer texture tileset *sprite-font*
                                    (car entry) (cadr entry) (caddr entry)))
                '(("HELLO WORLD"               50   50)
                  ("DOWNSTROKE"                100  120)
                  ("ABCDEFGHIJKLMNOPQRSTUVWXYZ" 20  200)
                  ("0123456789"                150  280)))))))

(game-run! *game*)