]> git.mcshandy.xyz Git - sumeriangame/commitdiff
Add rendering manager module for things like map positioning and scaling. roblox_eugh
authorRandy McShandy <randy@mcshandy.xyz>
Thu, 5 Feb 2026 02:40:37 +0000 (20:40 -0600)
committerRandy McShandy <randy@mcshandy.xyz>
Thu, 5 Feb 2026 02:40:37 +0000 (20:40 -0600)
main/control.lua
main/main.lua
main/player.lua
main/render.lua [new file with mode: 0644]

index 28d66cd20ca5b06cdd88e42e9dd350ade3c0f4cd..c6c689bddfd8db08189e2a64167b0aa0a74dd1a8 100644 (file)
@@ -2,6 +2,7 @@
 
 local player_module = require('player')
 local assets = require('assets')
+local render = require('render')
 
 local control = {}
 
@@ -35,6 +36,26 @@ control.keymap['q'] = {
   end,
 }
 
+control.keymap['z'] = {
+  control = control.ControlType.System,
+  system_action = function(key)
+    if render.map.scale < 8.0 then
+      render.map.scale = render.map.scale + 0.2
+      print('Scaled out to '..render.map.scale)
+    end
+  end,
+}
+
+control.keymap['x'] = {
+  control = control.ControlType.System,
+  system_action = function(key)
+    if render.map.scale > 0.4 then
+      render.map.scale = render.map.scale - 0.2
+      print('Scaled in to '..render.map.scale)
+    end
+  end,
+}
+
 -- Anything interested in a movement control should register its own handler here.
 function love.handlers.movement_control(key, value)
   player:movement_control(key, value)
index 271a21107c87528638ad8122315083fbb7ccd8fc..fe21254ba8b846d0c41ef01422b89030e7fa1a89 100644 (file)
@@ -9,9 +9,7 @@ local conf = require('conf')
 local assets = require('assets')
 local player_module = require('player')
 local control = require('control')
-
-local active_map = nil
-local tx, ty
+local render = require('render')
 
 player = player_module.player
 
@@ -21,17 +19,14 @@ function love.load()
   love.graphics.setFont(assets.get_font('Cuneiform36'))
   love.audio.play(assets.get_source('intro'))
 
-  active_map = assets.get_map('test_map_1')
+  render.map.active_map = assets.get_map('test_map_1')
   player = assets.get_object('Player')
-  player_module.init_controls(player, active_map)
-
-  tx = 0
-  ty = 0
+  player_module.init_controls(player, render.map.active_map)
 end
 
 function love.update(dt)
   lovebird.update()
-  active_map:update(dt)
+  render.map.active_map:update(dt)
   player:update(dt)
 end
 
@@ -49,10 +44,10 @@ function love.keyreleased(key)
 end
 
 function love.draw()
-  active_map:draw(tx, ty, 2.0)
+  render.map.active_map:draw(render.map.topleft.x, render.map.topleft.y, render.map.scale)
 
-  local r,g,b,a = love.graphics.getColor()
-  love.graphics.setColor(love.math.colorFromBytes(54, 54, 54))
+  last_color = { love.graphics.getColor() }
+  love.graphics.setColor(render.color.dark)
   love.graphics.print(IntroMessage, math.floor((conf.window.width/16) * 1), math.floor((conf.window.height/16) * 1))
-  love.graphics.setColor(r,g,b,a)
+  love.graphics.setColor(last_color)
 end
index e10aa2bb94c7ab6ca68cbf90552f35c74b7e1f27..d0c0370db7c1d719b30449d409a0625fba547b45 100644 (file)
@@ -3,6 +3,7 @@
 local conf = require('conf')
 local vector = require('vector')
 local collision = require('collision')
+local render = require('render')
 
 local player_module = {
   player = nil
diff --git a/main/render.lua b/main/render.lua
new file mode 100644 (file)
index 0000000..7cbca9c
--- /dev/null
@@ -0,0 +1,18 @@
+-- render.lua --
+local render = {}
+
+-- Define a palette
+render.color = {}
+-- wrapping a function that returns multiple values in {} packs
+-- them into a single struct
+render.color.dark   = { love.math.colorFromBytes(54, 54, 54) }
+render.color.light  = { love.math.colorFromBytes(229, 229, 229) }
+print(render.color.dark)
+
+-- Map rendering info
+render.map = {}
+render.map.topleft = { x = 0, y = 0 }
+render.map.scale = 2.0
+render.map.active_map = nil
+
+return render