diff options
author | chai <chaifix@163.com> | 2018-08-02 20:30:05 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2018-08-02 20:30:05 +0800 |
commit | d557097244f512acfdc2174383820180af9df01e (patch) | |
tree | f2c95d8a6ba33c0c7431bf83d44a06b5e581b804 | |
parent | bd28fe6339885e8dd30beabb1ea405cdb2f2c464 (diff) |
*update
-rw-r--r-- | EventMsgCenter/EventMsgCenter.lua | 25 | ||||
-rw-r--r-- | EventMsgCenter/Events.lua | 1 | ||||
-rw-r--r-- | EventMsgCenter/README.md | 2 | ||||
-rw-r--r-- | main.lua | 15 |
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 + @@ -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 |