diff --git a/two_player_cleaning_game/main.fnl b/two_player_cleaning_game/main.fnl index 6d666bc..586c65f 100644 --- a/two_player_cleaning_game/main.fnl +++ b/two_player_cleaning_game/main.fnl @@ -8,14 +8,27 @@ (var walls-sprite nil) (var walls-batch nil) (var wall-quads nil) +(local camera {:x 0 :y 0}) (local debug true) (local collider-debug-boxes []) (local bump-world (bump.newWorld 25)) (local player { :x 50 :y 50 :w 25 :h 25 :speed 80 }) +;; Screen Size +(local screen-width 800) +(local screen-height 600) +; 16:9 (Modern Widescreen - Recommended)** +; - **640x360** ← Best middle ground +; - 800x450 +; - 1024x576 +; - 1280x720 +; **4:3 (Classic/Arcade Feel)** +; - **320x240** (very retro, but small) +; - **800x600** (spacious, classic 4:3) +; - 1024x768 (fn love.load [] - (love.window.setMode 600 640) + (love.window.setMode screen-width screen-height) (bump-world:add player player.x player.y player.w player.h) ;; load world images @@ -90,12 +103,17 @@ while 1 do love.event.push('stdin', io.read('*line')) end") :start)) (let [(x y) (bump-world:move player (+ player.x deltas.dx) (+ player.y deltas.dy))] ; (print (fennel.view { :msg "Moving player" :x x :y y})) (tset player :x x) - (tset player :y y))))) + (tset player :y y)))) + + ;; Update camera to follow player (keep player centered on screen) + (tset camera :x (- player.x (/ screen-width 2))) + (tset camera :y (- player.y (/ screen-height 2))) + ) (fn love.draw [] - ;; clear the screen and set bg to off white (love.graphics.clear) + (love.graphics.translate (* -1 camera.x) (* -1 camera.y)) (draw-world) ;; draw player (love.graphics.draw