diff options
Diffstat (limited to 'src/script/embed/boot.lua')
-rw-r--r-- | src/script/embed/boot.lua | 132 |
1 files changed, 0 insertions, 132 deletions
diff --git a/src/script/embed/boot.lua b/src/script/embed/boot.lua deleted file mode 100644 index 2f6fa93..0000000 --- a/src/script/embed/boot.lua +++ /dev/null @@ -1,132 +0,0 @@ ---[[ - program entry -]] - -local function _onEvent(e) - -- update keyboard status - if e.type == "keydown" then - jin.keyboard.set(e.key, true) - elseif e.type == "keyup" then - jin.keyboard.set(e.key, false) - end - - -- call user onEvent function - if jin.core.onEvent then - jin.core.onEvent(e) - end -end - -------------------------------------------------- --- init file system -------------------------------------------------- -jin._argv[2] = jin._argv[2] or '.' -jin.filesystem.init() -jin.filesystem.mount(jin._argv[2]) - --- config -local conf = {} -if jin.filesystem.exist("config.lua") then - conf = require "config" -end -conf.width = conf.width or 600 -conf.height = conf.height or 500 -conf.fps = conf.fps or 60 -conf.title = conf.title or ("jin v" .. jin.version()) - --- init video subsystem -jin.graphics.init(conf.width,conf.height,conf.title) - --- open debug mode, must after jin.graphics.init -if jin._argv[3] == '-d' then - jin.debug.init() -end - -function jin.core.run() - local now = jin.time.second() - local last = now - local fsec = 1/conf.fps - -- for loading resources - if jin.core.load then - jin.core.load() - end - local dt = 0 - while(jin.core.running()) do - -- frame controle - last = now - now = jin.time.second() - if (now - last) < fsec then - jin.time.sleep(fsec - now + last) - end - - -- handle events - for _, e in pairs(jin.event.poll()) do - if _onEvent then - _onEvent(e) - end - end - - -- update - dt = now - last - if dt < fsec then - dt = fsec - end - if jin.core.onUpdate then - jin.core.onUpdate(dt) - end - - -- bind to default render buffer - jin.graphics.bind() - jin.graphics.clear() - jin.graphics.color() - jin.graphics.study() - - -- custom drawing - if jin.core.onDraw then - jin.core.onDraw() - end - - -- render debug window - if jin.debug.status() then - jin.debug.render() - end - - -- swap window buffer - jin.graphics.present() - - end -end - -local function onError(msg) - local tab = ' ' - print("Error:\n" .. msg) - function jin.core.onEvent(e) - if e.type == 'quit' then - jin.core.quit() - 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 - -if jin.filesystem.exist("main.lua") then - -- require main game script - xpcall(function() require"main" end, onError) - jin.core.run() -else - -- no game - function jin.core.onEvent(e) - if e.type == 'quit' then - jin.core.quit() - end - end - function jin.core.onDraw() - jin.graphics.clear(111, 134, 125, 255) - local ww, wh = jin.graphics.size() - local fw, fh = jin.graphics.box("no game", 20, 1, 20) - jin.graphics.write("no game", ww /2 - fw / 2, wh * 2/3, 16, 1, 18) - end - jin.core.run() -end |