summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Debug/init.lua27
-rw-r--r--EventMsgCenter/EventMsgCenter.lua3
-rw-r--r--EventMsgCenter/Events.lua8
-rw-r--r--component/component.lua2
-rw-r--r--config.lua3
-rw-r--r--loghelper/init.lua33
-rw-r--r--main.lua19
-rw-r--r--particle/particle.lua5
-rw-r--r--pool/pool.lua3
-rw-r--r--timer/timer.lua60
10 files changed, 123 insertions, 40 deletions
diff --git a/Debug/init.lua b/Debug/init.lua
deleted file mode 100644
index 86a192e..0000000
--- a/Debug/init.lua
+++ /dev/null
@@ -1,27 +0,0 @@
--- 不能使用 debug 命名模块,会冲突,
--- 要使用其余名字比如 Debug
-local debug = {}
-io.stdout:setvbuf("no")
-
-debug.LEVEL = {
- INFO = 4,
- DEBUG = 3,
- WARN = 2,
- ERROR = 1,
- NONE = 0
-}
-
-debug.level = debug.LEVEL.INFO
-
-debug.strict = function(level)
- debug.level = level
-end
-
-debug.log = function(level, fmt, ...)
- if level <= debug.level then
- local msg = string.format(fmt, ...)
- print(msg)
- end
-end
-
-return debug \ No newline at end of file
diff --git a/EventMsgCenter/EventMsgCenter.lua b/EventMsgCenter/EventMsgCenter.lua
index 8ca7a5b..43e859b 100644
--- a/EventMsgCenter/EventMsgCenter.lua
+++ b/EventMsgCenter/EventMsgCenter.lua
@@ -7,6 +7,7 @@ EventMsgCenter.registerMsg = function(e, callback, first)
_broadcast[e] = {}
end
first = first or false
+ EventMsgCenter.unRegisterMsg(e, callback)
if not first then
table.insert(_broadcast[e], callback)
else
@@ -44,4 +45,4 @@ EventMsgCenter.sendMsg = function(e, ...)
end
end
-return EventMsgCenter
+return EventMsgCenter \ No newline at end of file
diff --git a/EventMsgCenter/Events.lua b/EventMsgCenter/Events.lua
index 443f450..5c45f2e 100644
--- a/EventMsgCenter/Events.lua
+++ b/EventMsgCenter/Events.lua
@@ -1,8 +1,12 @@
local events = {
- "Player_Move",
+
+ "Player_Move",
"Player_Change",
"Player_Spawn",
- "Player_Kick"
+ "Player_Kick",
+
+ ""
+
}
function CreatEnumTable(tbl, index)
diff --git a/component/component.lua b/component/component.lua
index 5337370..2432054 100644
--- a/component/component.lua
+++ b/component/component.lua
@@ -5,7 +5,7 @@ local Component = {
Component.new = function(obj)
local component = {}
setmetatable(component, Component)
- component.__index = Component
+ Component.__index = Component
component:_init(obj)
end
diff --git a/config.lua b/config.lua
index 0f08caa..47bf055 100644
--- a/config.lua
+++ b/config.lua
@@ -3,6 +3,5 @@ return
width = 512,
height = 400,
fullscreen = false,
- resizable = false
+ resizable = true
}
-
diff --git a/loghelper/init.lua b/loghelper/init.lua
new file mode 100644
index 0000000..fc07943
--- /dev/null
+++ b/loghelper/init.lua
@@ -0,0 +1,33 @@
+-- 不能使用 debug 命名模块,会冲突,
+-- 要使用其余名字比如 loghelper
+local loghelper = {}
+io.stdout:setvbuf("no")
+
+loghelper.LEVEL = {
+ INFO = 4,
+ DEBUG = 3,
+ WARN = 2,
+ ERROR = 1,
+ NONE = 0
+}
+
+local logTag = {
+ [loghelper.LEVEL.INFO] = "[Info]",
+ [loghelper.LEVEL.DEBUG] = "[Debug]",
+ [loghelper.LEVEL.WARN] = "[Warn]",
+ [loghelper.LEVEL.ERROR] = "[Error]",
+}
+
+loghelper.level = loghelper.LEVEL.INFO
+
+loghelper.strict = function(level)
+ loghelper.level = level
+end
+
+loghelper.log = function(level, msg)
+ if level <= loghelper.level then
+ print(logTag[level] .. ":" .. msg)
+ end
+end
+
+return loghelper \ No newline at end of file
diff --git a/main.lua b/main.lua
index 3dc2932..af0bc0b 100644
--- a/main.lua
+++ b/main.lua
@@ -1,24 +1,29 @@
-local debug = require("Debug")
-debug.strict(debug.LEVEL.INFO)
+local loghelper = require("loghelper")
+loghelper.strict(loghelper.LEVEL.INFO)
-jin.core.onLoad = function()
+local timer = require("timer.timer")
+jin.core.load = function()
+ timer.every(1.0, function()
+ loghelper.log(loghelper.LEVEL.INFO, "test")
+ end)
end
jin.core.onEvent = function(e)
if e.type == "quit" then
jin.core.stop()
elseif e.type == "keydown" then
- if e.key == "Esc" then
+ if e.key == "Escape" then
jin.core.stop()
end
end
end
jin.core.onUpdate = function(dt)
-
+ timer.update(dt)
+ -- loghelper.log(loghelper.LEVEL.WARN, "版本" .. jin.revision())
end
jin.core.onDraw = function()
-
-end
+
+end \ No newline at end of file
diff --git a/particle/particle.lua b/particle/particle.lua
new file mode 100644
index 0000000..e430da9
--- /dev/null
+++ b/particle/particle.lua
@@ -0,0 +1,5 @@
+local particle = {}
+
+
+
+return particle \ No newline at end of file
diff --git a/pool/pool.lua b/pool/pool.lua
new file mode 100644
index 0000000..39eb3a6
--- /dev/null
+++ b/pool/pool.lua
@@ -0,0 +1,3 @@
+local pool = {}
+
+return pool \ No newline at end of file
diff --git a/timer/timer.lua b/timer/timer.lua
new file mode 100644
index 0000000..3566709
--- /dev/null
+++ b/timer/timer.lua
@@ -0,0 +1,60 @@
+local timer = {}
+local MODE = {
+ EVERY = 1,
+ REPEATS = 2,
+ AFTER = 3,
+}
+local timers = {}
+
+timer.update = function(sec)
+ for i, pack in ipairs(timers) do
+ pack.count = pack.count + sec
+ if pack.count >= pack.time then
+ if pack.mode == MODE.EVERY then
+ pack.count = 0
+ pack.callback()
+ elseif pack.mode == MODE.REPEATS then
+ pack.count = 0
+ pack.callback()
+ pack.repeats = pack.repeats + 1
+ if pack.repeats >= pack.rpt then
+ table.remove(timers, i)
+ end
+ elseif pack.mode == MODE.AFTER then
+ pack.callback()
+ table.remove(timers, i)
+ end
+ end
+ end
+end
+
+timer.every = function(sec, callback)
+ local pack = {}
+ pack.mode = MODE.EVERY
+ pack.time = sec
+ pack.callback = callback
+ pack.count = 0
+ table.insert(timers, pack)
+end
+
+timer.repeats = function(sec, rpt, callback)
+ local pack = {}
+ pack.mode = MODE.REPEATS
+ pack.time = sec
+ pack.callback = callback
+ pack.count = 0
+ pack.repeats = 0
+ pack.rpt = rpt
+ table.insert(timers, pack)
+end
+
+timer.after = function(sec, callback)
+ local pack = {}
+ pack.mode = MODE.AFTER
+ pack.time = sec
+ pack.callback = callback
+ pack.count = 0
+ table.insert(timers, pack)
+end
+
+return timer