(define-module (game render hero) #:use-module (game model hero) #:use-module (chickadee) #:use-module (chickadee math vector) #:use-module (chickadee graphics sprite) #:use-module (chickadee graphics texture) #:export (render-hero render-hero-load) ) (define hero-texture #f) (define hero-atlas #f) (define (render-hero-load) (set! hero-texture (load-image "assets/images/lr_penguin2.png")) (set! hero-atlas (split-texture hero-texture 32 32))) ;; start index of the walk animation (define hero-walk-offset 56) (define (hero-sprite hero) (let* ((x (inexact->exact (floor (vec2-x (hero-position hero))))) (x-offset (remainder x 8)) (hero-index (+ hero-walk-offset x-offset))) (texture-atlas-ref hero-atlas hero-index))) (define (render-hero hero) (draw-sprite (hero-sprite hero) (vec2+ (hero-position hero) (vec2 16.0 0.0))))