aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engine.scm7
-rw-r--r--tests/engine-test.scm15
2 files changed, 18 insertions, 4 deletions
diff --git a/engine.scm b/engine.scm
index 5526e6c..f6c9db7 100644
--- a/engine.scm
+++ b/engine.scm
@@ -28,10 +28,11 @@
render-hook ;; (lambda (game) ...) — post-render overlay
scene) ;; current scene struct; #f until create: runs
-;; Store the auto-generated constructor
-(define make-game-raw make-game)
+;; Store the auto-generated constructor as make-game*
+(define make-game* make-game)
;; ── Public constructor wrapper ─────────────────────────────────────────────
+;; Wraps the auto-generated make-game (renamed to make-game*) with default values
(define (make-game #!key
(title "Downstroke Game")
@@ -39,7 +40,7 @@
(frame-delay 16)
(input-config *default-input-config*)
(preload #f) (create #f) (update #f) (render #f))
- (make-game-raw
+ (make-game*
title: title
width: width
height: height
diff --git a/tests/engine-test.scm b/tests/engine-test.scm
index 56b9a04..b026ce4 100644
--- a/tests/engine-test.scm
+++ b/tests/engine-test.scm
@@ -74,7 +74,8 @@
(defstruct scene entities tilemap camera tileset-texture))
(import downstroke/world)
-;; --- Assets module (real) ---
+;; --- Real deps ---
+(import simple-logger) ;; required by input.scm
(include "assets.scm")
(import downstroke/assets)
@@ -154,4 +155,16 @@
(test-assert "update hook is stored"
(procedure? (game-update-hook g)))))
+(test-group "game-camera"
+ (let* ((cam (make-camera x: 10 y: 20))
+ (scene (make-scene entities: '()
+ tilemap: #f
+ camera: cam
+ tileset-texture: #f))
+ (g (make-game)))
+ (game-scene-set! g scene)
+ (test-equal "returns scene camera"
+ cam
+ (game-camera g))))
+
(test-end "engine")