aboutsummaryrefslogtreecommitdiff
path: root/src/lua/modules/embed/boot.lua.h
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2018-10-23 12:23:58 +0800
committerchai <chaifix@163.com>2018-10-23 12:23:58 +0800
commit40fc27154fe754181934dc7ee31375e6bdfb33fc (patch)
tree897ad98d759bc308ef66561181ba88b85f2ccd47 /src/lua/modules/embed/boot.lua.h
parent1480c9445100075c9e1a894eb07c0ef727b509a1 (diff)
*merge from minimal
Diffstat (limited to 'src/lua/modules/embed/boot.lua.h')
-rw-r--r--src/lua/modules/embed/boot.lua.h178
1 files changed, 0 insertions, 178 deletions
diff --git a/src/lua/modules/embed/boot.lua.h b/src/lua/modules/embed/boot.lua.h
deleted file mode 100644
index d84ca21..0000000
--- a/src/lua/modules/embed/boot.lua.h
+++ /dev/null
@@ -1,178 +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])
-
--------------------------------------------------------------------------
--- Config game
--------------------------------------------------------------------------
-
-jin.config = {}
-if jin.filesystem.exist("config.lua") then
- jin.config = require "config"
-end
-jin.config.width = jin.config.width or 576
-jin.config.height = jin.config.height or 448
-jin.config.vsync = jin.config.vsync or false
-jin.config.title = jin.config.title or ("jin v" .. jin.version())
-jin.config.resizable = jin.config.resizable or false
-jin.config.fullscreen = jin.config.fullscreen or false
-
--------------------------------------------------------------------------
--- Initialize sub systems
--------------------------------------------------------------------------
-
-jin.graphics.init(jin.config)
-jin.audio.init()
-
--------------------------------------------------------------------------
--- Default game loop
--------------------------------------------------------------------------
-
-local function call(func, ...)
- if func then
- return func(...)
- end
-end
-
-jin.core.setHandler = function(handler)
- if handler == nil then
- return
- end
- jin.core.onLoad = handler.onLoad
- jin.core.onEvent = handler.onEvent
- jin.core.onUpdate = handler.onUpdate
- jin.core.onDraw = handler.onDraw
-end
-
-function jin.core.run()
- call(jin.core.onLoad)
- local dt = 0
- local previous = jin.time.second()
- local current = previous
- 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)
- end
-
- previous = current
- current = jin.time.second()
- dt = current - previous
-
- call(jin.core.onUpdate, dt)
-
- if jin.graphics then
- jin.graphics.unbindCanvas()
- jin.graphics.clear()
- jin.graphics.setColor()
- jin.graphics.setFont()
- call(jin.core.onDraw)
- jin.graphics.present()
- end
-
- if jin.time then
- jin.time.sleep(0.001)
- end
- 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,
- onLoad = function()
- local nogame = jin.nogame
- nogame.cw = nogame.sw / nogame.cs
- nogame.ch = nogame.sh / nogame.cs
- nogame.t = nogame.ww - 1
- end,
- onEvent = function(e)
- if e.type == 'quit' then
- jin.core.stop()
- end
- end,
- onUpdate = 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.setColor(
- 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,
- onDraw = 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 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.getSize()
- function jin.core.onDraw()
- jin.graphics.write("Error: ", 10, 10, 30, 3, 30)
- jin.graphics.write(msg, 10, 50)
- end
-end
-
-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.setHandler(jin.nogame)
- jin.core.run()
- end
- jin.graphics.destroy()
- jin.audio.destroy()
- jin.core.quit()
-end
-
-xpcall(boot, onError)
-
-)";