diff options
Diffstat (limited to 'world.scm')
| -rw-r--r-- | world.scm | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -61,8 +61,10 @@ ;; Center camera on entity. Clamps to >= 0 on both axes. ;; viewport-w and viewport-h are the game window dimensions (pixels). (define (camera-follow! camera entity viewport-w viewport-h) - (camera-x-set! camera (max 0 (- (entity-ref entity #:x 0) (/ viewport-w 2)))) - (camera-y-set! camera (max 0 (- (entity-ref entity #:y 0) (/ viewport-h 2))))) + (let* ((entity-x (entity-ref entity #:x 0)) + (entity-y (entity-ref entity #:y 0))) + (camera-x-set! camera (inexact->exact (floor (max 0 (- entity-x (/ viewport-w 2)))))) + (camera-y-set! camera (inexact->exact (floor (max 0 (- entity-y (/ viewport-h 2)))))))) ;; Returns the first entity in scene whose #:tags list contains tag, or #f. (define (scene-find-tagged scene tag) |
