diff options
author | chai <chaifix@163.com> | 2018-08-20 11:51:32 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2018-08-20 11:51:32 +0800 |
commit | 65bafdc682db46f0f115374ad39f1fbc348832ac (patch) | |
tree | 7862548cdf01060e89a45c9817afc6e5d263acd7 /src/lua/embed/boot.lua.h | |
parent | 9593ae6ecdfcfb876fa7953f25e19f0a97e1453a (diff) |
*update
Diffstat (limited to 'src/lua/embed/boot.lua.h')
-rw-r--r-- | src/lua/embed/boot.lua.h | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/src/lua/embed/boot.lua.h b/src/lua/embed/boot.lua.h deleted file mode 100644 index 36615b0..0000000 --- a/src/lua/embed/boot.lua.h +++ /dev/null @@ -1,163 +0,0 @@ -/* boot.lua */ -static const char* boot_lua = R"( -jin._argv[2] = jin._argv[2] or '.' -jin.filesystem.init() -jin.filesystem.mount(jin._argv[2]) - -local conf = {} -if jin.filesystem.exist("config.lua") then - conf = require "config" -end -conf.width = conf.width or 576 -conf.height = conf.height or 448 -conf.fps = conf.fps or 60 -conf.vsync = conf.vsync or false -conf.title = conf.title or ("jin v" .. jin.version()) -conf.resizable = conf.resizable or false -conf.fullscreen = conf.fullscreen or false - --- initialize subsystems -jin.graphics.init(conf) -jin.audio.init() - -local function call(func, ...) - if func then - return func(...) - end -end - -function jin.core.run() - call(jin.core.onLoad) - local previous = jin.time.second() - local SEC_PER_UPDATE = 1 / conf.fps - local dt = SEC_PER_UPDATE - local running = true - while(jin.core.running()) do - for _, e in pairs(jin.event.poll()) do - if e.type == "keydown" then - jin.keyboard.set(e.key, true) - elseif e.type == "keyup" then - jin.keyboard.set(e.key, false) - end - call(jin.core.onEvent, e) - running = jin.core.running() - if not running then break end - end - if not running then break end - - call(jin.core.onUpdate, dt) - - jin.graphics.unbind() - jin.graphics.clear() - jin.graphics.color() - jin.graphics.study() - call(jin.core.onDraw) - jin.graphics.present() - - local current = jin.time.second() - dt = current - previous - local wait = SEC_PER_UPDATE - dt - previous = previous + SEC_PER_UPDATE - if wait > 0 then - dt = SEC_PER_UPDATE - jin.time.sleep(wait) - else - previous = current - end - end -end - -local function onError(msg) - local tab = ' ' - print("Error:\n" .. msg) - function jin.core.onEvent(e) - if e.type == 'quit' then - jin.core.stop() - end - end - local ww, wh = jin.graphics.size() - function jin.core.onDraw() - jin.graphics.write("Error: ", 10, 10, 30, 3, 30) - jin.graphics.write(msg, 10, 50) - end -end - -------------------------------------------------------------------------------- --- No game handler -------------------------------------------------------------------------------- - -jin.nogame = { - cs = 64, - sw = jin.graphics.getWidth(), - sh = jin.graphics.getHeight(), - cw = 0, - ch = 0, - ww = 6, - ww2 = 6*2, - speed = 4, - t = 0, - load = function() - local nogame = jin.nogame - nogame.cw = nogame.sw / nogame.cs - nogame.ch = nogame.sh / nogame.cs - nogame.t = nogame.ww - 1 - end, - event = function(e) - if e.type == 'quit' then - jin.core.stop() - end - end, - update = function(dt) - local nogame = jin.nogame - nogame.t = nogame.t + dt * nogame.speed - if nogame.t > nogame.ww2 then - nogame.t = nogame.t - nogame.ww2 - end - end, - circle = function(x, y, r) - local nogame = jin.nogame - if r % nogame.ww2 > nogame.ww then - return - end - r = math.sin((r/nogame.ww)*math.pi)*nogame.cs/2 - local fact = (x + y) / nogame.ch * nogame.cw - jin.graphics.color(155 + 100 * math.sin(fact), 155 + 100 * math.cos(fact), 155 + 100 * math.sin(fact * fact), 255) - jin.graphics.circle("fill", x*nogame.cs + nogame.cs/2, y*nogame.cs + nogame.cs/2, r) - end, - draw = function() - local nogame = jin.nogame - for y = 0, nogame.ch - 1 do - for x = 0, nogame.cw - 1 do - nogame.circle(x, y, nogame.t+x+y) - end - end - end -} - -------------------------------------------------------------------------------- --- Boot jin -------------------------------------------------------------------------------- - -local function boot() - if jin.filesystem.exist("main.lua") then - -- require main game script - xpcall(function() require"main" end, onError) - jin.core.run() - else - -- no game - jin.core.onLoad = jin.nogame.load - jin.core.onEvent = jin.nogame.event - jin.core.onUpdate = jin.nogame.update - jin.core.onDraw = jin.nogame.draw - jin.core.run() - end - -- quit subsystems - jin.graphics.destroy() - jin.audio.destroy() - -- exit whole game - jin.core.quit() -end - -xpcall(boot, onError) - -)"; |