summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2018-08-02 20:30:05 +0800
committerchai <chaifix@163.com>2018-08-02 20:30:05 +0800
commitd557097244f512acfdc2174383820180af9df01e (patch)
treef2c95d8a6ba33c0c7431bf83d44a06b5e581b804
parentbd28fe6339885e8dd30beabb1ea405cdb2f2c464 (diff)
*update
-rw-r--r--EventMsgCenter/EventMsgCenter.lua25
-rw-r--r--EventMsgCenter/Events.lua1
-rw-r--r--EventMsgCenter/README.md2
-rw-r--r--main.lua15
4 files changed, 30 insertions, 13 deletions
diff --git a/EventMsgCenter/EventMsgCenter.lua b/EventMsgCenter/EventMsgCenter.lua
index 43e859b..7b944c2 100644
--- a/EventMsgCenter/EventMsgCenter.lua
+++ b/EventMsgCenter/EventMsgCenter.lua
@@ -1,13 +1,14 @@
+local EventMsgCenter = {}
+
-- <event, {callbacks}>
local _broadcast = {}
-local EventMsgCenter = {}
EventMsgCenter.registerMsg = function(e, callback, first)
if _broadcast[e] == nil then
_broadcast[e] = {}
end
first = first or false
- EventMsgCenter.unRegisterMsg(e, callback)
+ EventMsgCenter.unregisterMsg(e, callback)
if not first then
table.insert(_broadcast[e], callback)
else
@@ -15,21 +16,27 @@ EventMsgCenter.registerMsg = function(e, callback, first)
end
end
-EventMsgCenter.unRegisterMsg = function(e, callback)
- if _broadcast[e] == nil or callback == nil then
- return
+local removeElement = function(t, e)
+ for i, v in ipairs(t) do
+ if v == e then
+ table.remove(t, i)
+ break
+ end
end
- table.remove(_broadcast[e], callback)
end
-EventMsgCenter.unRegisterAllMsgByEvent = function(e)
- if _broadcast[e] == nil then
+EventMsgCenter.unregisterMsg = function(e, callback)
+ if _broadcast[e] == nil or callback == nil then
return
end
+ removeElement(_broadcast[e], callback)
+end
+
+EventMsgCenter.unregisterAllMsgByEvent = function(e)
_broadcast[e] = nil
end
-EventMsgCenter.unRegisterAllMsg = function()
+EventMsgCenter.unregisterAllMsg = function()
_broadcast = {}
end
diff --git a/EventMsgCenter/Events.lua b/EventMsgCenter/Events.lua
index 5c45f2e..3803fd4 100644
--- a/EventMsgCenter/Events.lua
+++ b/EventMsgCenter/Events.lua
@@ -10,7 +10,6 @@ local events = {
}
function CreatEnumTable(tbl, index)
- assert(IsTable(tbl))
local enumtbl = {}
local enumindex = index or 0
for i, v in ipairs(tbl) do
diff --git a/EventMsgCenter/README.md b/EventMsgCenter/README.md
index e69de29..ef3bd92 100644
--- a/EventMsgCenter/README.md
+++ b/EventMsgCenter/README.md
@@ -0,0 +1,2 @@
+Event Massage Center
+
diff --git a/main.lua b/main.lua
index 4f1e82d..f6d3441 100644
--- a/main.lua
+++ b/main.lua
@@ -1,14 +1,22 @@
local loghelper = require("loghelper")
loghelper.strict(loghelper.LEVEL.INFO)
-
+local EventMsgCenter = require("EventMsgCenter.EventMsgCenter")
+local Events = require("EventMsgCenter.Events")
local timer = require("timer.timer")
_G["frame"] = 0
jin.core.onLoad = function()
+ EventMsgCenter.registerMsg(Events.Player_Move, function(msg)
+ print(msg)
+ end)
timer.every(1.0, function()
loghelper.log(loghelper.LEVEL.INFO, _G["frame"] .. "fps")
+ EventMsgCenter.sendMsg(Events.Player_Move, _G["frame"])
_G["frame"] = 0
end)
+ timer.after(4.0, function()
+ EventMsgCenter.unregisterAllMsgByEvent(Events.Player_Move)
+ end)
end
jin.core.onEvent = function(e)
@@ -24,9 +32,10 @@ end
jin.core.onUpdate = function(dt)
_G["frame"] = _G["frame"] + 1
timer.update(dt)
+
-- loghelper.log(loghelper.LEVEL.WARN, "版本" .. jin.revision())
end
jin.core.onDraw = function()
-
-end
+
+end \ No newline at end of file