This commit is contained in:
mehbark 2023-12-22 01:00:23 -05:00
parent b331907fa0
commit a12a2d05fb

View file

@ -37,6 +37,8 @@
(set-color-a! c a)
c]))
(define WHITE (color 255 255 255 255))
;; (define c (color 1 2 3 4))
;; (display (list (color-r c) (color-g c) (color-b c) (color-a c)))
@ -214,11 +216,13 @@
(define *skin-paths* '("./skins" "."))
; could be fun to do weird stuff with skins (randomly choosing, &c)
(define (load-skin filename)
(define path
(find file-exists?
(map (lambda (p) (string-append p "/" filename))
*skin-paths*)))
(map (lambda (p) (string-append p "/" filename))
*skin-paths*)))
(unless path
(error
'load-skin
@ -227,25 +231,36 @@
(with-output-to-string (lambda () (write *skin-paths*))))))
(load-texture path))
(define skin-width 144)
(define skin-height 122)
(define number-rects
(let ([width (/ skin-width 9)])
(list->vector
(map (lambda (n)
; the bottom and right sides are 1 pixel shy, it works out
(rectangle (* n width) 0 width width))
(iota 9)))))
(define (blit-number skin n pos)
(let ([rect (vector-ref number-rects n)])
(draw-texture-rec skin rect pos WHITE)))
(define (main)
(init-window 100 100 "hello")
(set-target-fps 60)
(let ([skin (load-texture "skins/xp-flowers.bmp")])
(display skin)
(newline)
(let ([skin (load-skin "xp-flowers.bmp")])
;; (display skin)
;; (newline)
; with the actual game, we probably don't have to draw every time
; with the actual game, we probably don't have to draw every time
(until (window-should-close?)
(with-draw
(clear-background (color 245 245 245))
(draw-texture-rec skin (rectangle 0 0 100) (vector2 0 0) (color 255 255 255))
(draw-fps 0 0)
(draw-text "wow awesome" 0 20 20 (color 0 0 0))))
(clear-background (color 0 0 0 0))
(for-each (lambda (n)
(blit-number skin n (vector2 (* 10 n) (* 10 n))))
(iota 9))))
(unload-texture skin)
(close-window)))
(main)