diff options
| author | Gene Pasquet <dev@etenil.net> | 2026-04-08 00:30:11 +0100 |
|---|---|---|
| committer | Gene Pasquet <dev@etenil.net> | 2026-04-08 00:30:11 +0100 |
| commit | f8cc4a748bb8b6431a1023a876745b1bb473eb19 (patch) | |
| tree | af708ac1138ee17d35d9b1ba46ec8b56acaccedb /renderer.scm | |
| parent | cfddc2f180552afdb080968f847018c5a223b41a (diff) | |
Support entity groups
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 |
