Run upgrade to love11
This commit is contained in:
parent
9690d82140
commit
354abe1954
13
README.md
13
README.md
@ -90,36 +90,31 @@ And in main.lua:
|
|||||||
|
|
||||||
Now theres a lot to explain, but its fairly simple, so lets take it by chunks
|
Now theres a lot to explain, but its fairly simple, so lets take it by chunks
|
||||||
```lua
|
```lua
|
||||||
|
|
||||||
local input = require "helium.core.input"
|
local input = require "helium.core.input"
|
||||||
```
|
```
|
||||||
Here we import the input module of Helium, so that we can later subscribe to an event
|
Here we import the input module of Helium, so that we can later subscribe to an event
|
||||||
|
|
||||||
|
---
|
||||||
```lua
|
```lua
|
||||||
|
|
||||||
state.pressed = false
|
state.pressed = false
|
||||||
```
|
```
|
||||||
Here we create a state field called pressed, think of state as a helium elements self
|
Here we create a state field called pressed, think of state as a helium elements self
|
||||||
It works like a regular table, with the caveat that you shouldnt overwrite it directly like state = {}
|
It works like a regular table, with the caveat that you shouldnt overwrite it directly like state = {}
|
||||||
|
|
||||||
|
---
|
||||||
```lua
|
```lua
|
||||||
|
|
||||||
local callback = function() state.pressed = true end
|
local callback = function() state.pressed = true end
|
||||||
```
|
```
|
||||||
Then we overwrite that state.pressed inside a callback which will be called every time our button is pressed
|
Then we overwrite that state.pressed inside a callback which will be called every time our button is pressed
|
||||||
|
|
||||||
|
---
|
||||||
```lua
|
```lua
|
||||||
|
|
||||||
input.subscribe(0,0,view.w,view.h,'clicked',callback)
|
input.subscribe(0,0,view.w,view.h,'clicked',callback)
|
||||||
```
|
```
|
||||||
This is creating an input subscription for the event of your choice
|
This is creating an input subscription for the event of your choice
|
||||||
|
|
||||||
|
---
|
||||||
```lua
|
```lua
|
||||||
|
|
||||||
return function()
|
return function()
|
||||||
if state.pressed then
|
if state.pressed then
|
||||||
love.graphics.setColor(0.3,0.3,0.9)
|
love.graphics.setColor(0.3,0.3,0.9)
|
||||||
|
|||||||
28
init.lua
28
init.lua
@ -13,6 +13,9 @@ helium.loader = require(path..".loader")
|
|||||||
helium.elementBuffer = {}
|
helium.elementBuffer = {}
|
||||||
|
|
||||||
function helium.render()
|
function helium.render()
|
||||||
|
--We don't want any side effects affecting internal rendering
|
||||||
|
love.graphics.reset()
|
||||||
|
|
||||||
for i, e in ipairs(helium.elementBuffer) do
|
for i, e in ipairs(helium.elementBuffer) do
|
||||||
e:externalRender()
|
e:externalRender()
|
||||||
end
|
end
|
||||||
@ -45,8 +48,8 @@ end
|
|||||||
--[[
|
--[[
|
||||||
A user doesn't have to use this particular love.run
|
A user doesn't have to use this particular love.run
|
||||||
|
|
||||||
*.element.bufferUpdate()
|
helium.render()
|
||||||
*.draw()
|
helium.update(dt)
|
||||||
|
|
||||||
Need to be called either through love.update and love.draw respectively
|
Need to be called either through love.update and love.draw respectively
|
||||||
or put in to your custom love.run
|
or put in to your custom love.run
|
||||||
@ -67,12 +70,7 @@ end
|
|||||||
]]
|
]]
|
||||||
if helium.conf.AUTO_RUN then
|
if helium.conf.AUTO_RUN then
|
||||||
function love.run()
|
function love.run()
|
||||||
|
if love.load then love.load(love.arg.parseGameArguments(arg), arg) end
|
||||||
if love.math then
|
|
||||||
love.math.setRandomSeed(os.time())
|
|
||||||
end
|
|
||||||
|
|
||||||
if love.load then love.load(arg) end
|
|
||||||
|
|
||||||
-- We don't want the first frame's dt to include time taken by love.load.
|
-- We don't want the first frame's dt to include time taken by love.load.
|
||||||
if love.timer then love.timer.step() end
|
if love.timer then love.timer.step() end
|
||||||
@ -80,14 +78,14 @@ if helium.conf.AUTO_RUN then
|
|||||||
local dt = 0
|
local dt = 0
|
||||||
|
|
||||||
-- Main loop time.
|
-- Main loop time.
|
||||||
while true do
|
return function()
|
||||||
-- Process events.
|
-- Process events.
|
||||||
if love.event then
|
if love.event then
|
||||||
love.event.pump()
|
love.event.pump()
|
||||||
for name, a,b,c,d,e,f in love.event.poll() do
|
for name, a,b,c,d,e,f in love.event.poll() do
|
||||||
if name == "quit" then
|
if name == "quit" then
|
||||||
if not love.quit or not love.quit() then
|
if not love.quit or not love.quit() then
|
||||||
return a
|
return a or 0
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -99,25 +97,23 @@ if helium.conf.AUTO_RUN then
|
|||||||
|
|
||||||
|
|
||||||
-- Update dt, as we'll be passing it to update
|
-- Update dt, as we'll be passing it to update
|
||||||
if love.timer then
|
if love.timer then dt = love.timer.step() end
|
||||||
love.timer.step()
|
|
||||||
dt = love.timer.getDelta()
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Call update and draw
|
-- Call update and draw
|
||||||
if love.update then love.update(dt) end -- will pass 0 if love.timer is disabled
|
if love.update then love.update(dt) end -- will pass 0 if love.timer is disabled
|
||||||
helium.update(dt)
|
helium.update(dt)
|
||||||
|
|
||||||
if love.graphics and love.graphics.isActive() then
|
if love.graphics and love.graphics.isActive() then
|
||||||
love.graphics.clear(love.graphics.getBackgroundColor())
|
|
||||||
love.graphics.origin()
|
love.graphics.origin()
|
||||||
|
love.graphics.clear(love.graphics.getBackgroundColor())
|
||||||
|
|
||||||
if love.draw then love.draw() end
|
if love.draw then love.draw() end
|
||||||
helium.render()
|
helium.render()
|
||||||
|
|
||||||
love.graphics.present()
|
love.graphics.present()
|
||||||
end
|
end
|
||||||
|
|
||||||
if love.timer then love.timer.sleep(0.00001) end
|
if love.timer then love.timer.sleep(0.001) end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user