[Library] LövelyMoon v2
Posted: Tue Jul 09, 2013 10:11 am
Welcome to my first library: LövelyMoon! Basicly this library is based around a lua engine called "DaisyMoon". LövelyMoon adds a very neat way of handling gamestates, in fact, it is made to make your game focus on gamestates and such.
The credit for the new version goes to the wonderful bVictor7364
Changes from version 1:
Usage:
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:
2. In function love.load() add states and enable first one:
3. Replace love event states by lovelyMoon ones:
4. Create the state script (e.g. "/states/menu.lua"):
5.That's all. Add game code to states' functions.
Thanks again to bVictor7364! This is all his work!
I hope this library proves to be useful to you all!
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!