aboutsummaryrefslogtreecommitdiff
path: root/engine.scm
diff options
context:
space:
mode:
Diffstat (limited to 'engine.scm')
-rw-r--r--engine.scm10
1 files changed, 10 insertions, 0 deletions
diff --git a/engine.scm b/engine.scm
index 553dddf..69a30c7 100644
--- a/engine.scm
+++ b/engine.scm
@@ -154,6 +154,16 @@
(render-fn (or (and state (state-hook state #:render))
(game-render-hook game))))
(when update-fn (update-fn game dt))
+ ;; Auto camera-follow: if scene has a camera-target tag, follow it
+ (when (game-scene game)
+ (let ((target-tag (scene-camera-target (game-scene game))))
+ (when target-tag
+ (let ((target (scene-find-tagged (game-scene game) target-tag)))
+ (when target
+ (camera-follow! (scene-camera (game-scene game))
+ target
+ (game-width game)
+ (game-height game)))))))
(sdl2:render-clear! (game-renderer game))
(when (game-scene game)
(render-scene! (game-renderer game) (game-scene game)))