diff options
Diffstat (limited to 'renderer.scm')
| -rw-r--r-- | renderer.scm | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/renderer.scm b/renderer.scm index b048bad..48698f7 100644 --- a/renderer.scm +++ b/renderer.scm @@ -121,9 +121,11 @@ ;; #:color is (r g b) or (r g b a); used when no tile sprite is drawn. (define (draw-entity renderer camera tileset tileset-texture entity) - (let ((tile-id (entity-ref entity #:tile-id #f)) - (color (entity-ref entity #:color #f))) - (cond + (if (entity-ref entity #:skip-render #f) + (void) + (let ((tile-id (entity-ref entity #:tile-id #f)) + (color (entity-ref entity #:color #f))) + (cond ((and tile-id tileset tileset-texture) (sdl2:render-copy-ex! renderer tileset-texture (tile-rect (tileset-tile tileset tile-id)) @@ -131,14 +133,14 @@ 0.0 #f (entity-flip entity))) - ((and (list? color) (>= (length color) 3)) - (let ((r (list-ref color 0)) - (g (list-ref color 1)) - (b (list-ref color 2)) - (a (if (>= (length color) 4) (list-ref color 3) 255))) - (set! (sdl2:render-draw-color renderer) (sdl2:make-color r g b a)) - (sdl2:render-fill-rect! renderer (entity->screen-rect entity camera)))) - (else #f)))) + ((and (list? color) (>= (length color) 3)) + (let ((r (list-ref color 0)) + (g (list-ref color 1)) + (b (list-ref color 2)) + (a (if (>= (length color) 4) (list-ref color 3) 255))) + (set! (sdl2:render-draw-color renderer) (sdl2:make-color r g b a)) + (sdl2:render-fill-rect! renderer (entity->screen-rect entity camera)))) + (else #f))))) (define (draw-entities renderer camera tileset tileset-texture entities) (for-each |
