The credit for the new version goes to the wonderful bVictor7364
Changes from version 1:
- Updated to LÖVE 0.10.2
- lovelyMoon.lua & stateManager.lua are now merged in one module "lovelyMoon".
- All "lovelyMoon.*" functions (update, draw, etc.) are moved to "lovelyMoon.events.*".
- All the functions that were in a global scope (from stateManager) were moved to "lovelyMoon.*"
- Simplified adding state procedure.
- Added a "switchState(currentID, nextID)", which basically calls "disableState(id)" and then "enableState(id)".
- Added a "lovelyMoon.new(self)" function.
- Simplified "state:new()" function. all you have to do now is: "return lovelyMoon.new(self)"
Code: Select all
lovelyMoon.event.update(dt)
lovelyMoon.event.draw()
lovelyMoon.event.keypressed(key, unicode)
lovelyMoon.event.keyreleased(key, unicode)
lovelyMoon.event.mousepressed(x, y, button)
lovelyMoon.event.mousereleased(x, y, button)
lovelyMoon.new(self) -- Initializes a new state; call from: function state:new()
lovelyMoon.addState(file, id) -- return state; file argument is used for require.
lovelyMoon.isStateEnabled(id) -- return bool
lovelyMoon.getState(id) -- return state
lovelyMoon.enableState(id)
lovelyMoon.disableState(id)
lovelyMoon.switchState(currentID, nextID)
lovelyMoon.toggleState(id)
lovelyMoon.destroyState(id)
0. Place "lovelyMoon.lua" library somewhere in source folder (e.g. "/lib/lovelyMoon.lua")
1. In main.lua add a variable to require the lovelyMoon library and preferable create a table for states:
Code: Select all
lovelyMoon = require("lib.lovelyMoon")
states = {}
Code: Select all
function love.load()
states.menu = lovelyMoon.addState("states.menu", "menu") -- Argument 1 is file path for require
states.game = lovelyMoon.addState("states.game", "game")
lovelyMoon.enableState("menu")
end
Code: Select all
function love.update(dt)
lovelyMoon.event.update(dt)
end
function love.draw()
lovelyMoon.event.draw()
end
function love.keypressed(key, unicode)
lovelyMoon.event.keypressed(key, unicode)
end
function love.keyreleased(key, unicode)
lovelyMoon.event.keyreleased(key, unicode)
end
function love.mousepressed(x, y, button)
lovelyMoon.event.mousepressed(x, y, button)
end
function love.mousereleased(x, y, button)
lovelyMoon.event.mousereleased(x, y, button)
end
Code: Select all
local state = {}
function state:new()
return lovelyMoon.new(self)
end
function state:load()
end
function state:close()
end
function state:enable()
end
function state:disable()
end
function state:update(dt)
end
function state:draw()
end
function state:keypressed(key, unicode)
end
function state:keyreleased(key, unicode)
end
function state:mousepressed(x, y, button)
end
function state:mousereleased(x, y, button)
end
return state
Thanks again to bVictor7364! This is all his work!
I hope this library proves to be useful to you all!