diff options
Diffstat (limited to 'utils/map.lua')
-rw-r--r-- | utils/map.lua | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/utils/map.lua b/utils/map.lua deleted file mode 100644 index 1f06487..0000000 --- a/utils/map.lua +++ /dev/null @@ -1,126 +0,0 @@ -Class = require("libs.hump.class") -Gamestate = require("libs.hump.gamestate") -STI = require("libs.sti") -Moonshine = require("libs.moonshine") -Camera = require("libs.hump.camera") -Windfield = require("libs.windfield") - -zoomFactor = 2 -player = { - x=0, - y=0, - sprite=love.graphics.newImage("assets/images/player_demo.png"), - speed=100 -} - -windowWidth, windowHeight = love.graphics.getDimensions() -_w = windowWidth/zoomFactor -_h = windowHeight/zoomFactor - -Map = Class { - __include=Gamestate, - init = function(self, mapName) - _gameWorld = Windfield.newWorld(0,0) - effect = Moonshine(windowWidth, windowHeight, Moonshine.effects.crt) - .chain(Moonshine.effects.vignette) - .chain(Moonshine.effects.scanlines) - .chain(Moonshine.effects.chromasep) - effect.scanlines.thickness = .2 - effect.scanlines.opacity = .5 - effect.chromasep.angle = 1 - effect.chromasep.radius = 2 - - camera = Camera() - camera:zoom(zoomFactor) - currentMap = STI("assets/maps/"..mapName..".lua") - if currentMap.layers["entities"] then - for i,obj in pairs(currentMap.layers["entities"].objects) do - player.x = obj.x - player.y = obj.y - player.collider = _gameWorld:newBSGRectangleCollider(player.x, player.y, 8, 8, 0) - player.collider:setFixedRotation(true) - end - end - - if currentMap.layers["walls"] then - for i,obj in pairs(currentMap.layers["walls"].objects) do - local wall = _gameWorld:newRectangleCollider(obj.x, obj.y, obj.width, obj.height) - wall:setType("static") - end - end - end, - entities={} -} - -function Map:update(dt) - - local vx = 0 - local vy = 0 - - if love.keyboard.isDown("up") then - vy = player.speed * -1 - end - - if love.keyboard.isDown("down") then - vy = player.speed - end - - if love.keyboard.isDown("left") then - vx = player.speed * -1 - end - - if love.keyboard.isDown("right") then - vx = player.speed - end - - player.collider:setLinearVelocity(vx, vy) - - _gameWorld:update(dt) - player.x = player.collider:getX() - 4 - player.y = player.collider:getY() - 4 - - camera:lookAt(player.x, player.y) - currentMap:update(dt) - - if camera.x < _w/2 then - camera.x = _w/2 - end - - if camera.y < _h/2 then - camera.y = _h/2 - end - - local mapWidth = currentMap.width * currentMap.tilewidth - local mapHeight = currentMap.height * currentMap.tileheight - - if camera.x > (mapWidth - _w/2) then - camera.x = (mapWidth - _w/2) - end - - if camera.y > (mapHeight - _h/2) then - camera.y = (mapHeight - _h/2) - end -end - -function Map:draw() - effect(function() - camera:attach() - drawMapLayer("ground") - drawMapLayer("decorations") - love.graphics.draw(player.sprite, player.x, player.y) - drawMapLayer("foreground") - -- _gameWorld:draw() - camera:detach() - end) -end - -function Map:keypressed(key, scancode) -end - -function drawMapLayer(layerName) - if currentMap.layers[layerName].visible then - currentMap:drawLayer(currentMap.layers[layerName]) - end -end - -return Map
\ No newline at end of file |