quick cocos2dx 自定义事件管理器

--事件系统 ---------------------------------- EventSystem = class("EventSystem") function EventSystem:ctor() self.dispatcher = cc.Director:getInstance():getEventDispatcher(); self.tCount = {} end --事件绑定 function EventSystem:bind(event_id,event_func,priority) if event_id == nil then error("Try to bind to a nil event_id") return end if event_func == nil then error("Try to bind to a nil event_func") return end if priority and priority <= 0 then error("0 priority is forbidden") return end local function onEvent(event) event_func(unpack(event.usedata)) end self.tCount[event_id] = self.tCount[event_id] or 0 self.tCount[event_id] = self.tCount[event_id] + 1 local listener = cc.EventListenerCustom:create(event_id,onEvent) self.dispatcher:addEventListenerWithFixedPriority(listener,priority or self.tCount[event_id]) return listener end --解绑事件 function EventSystem:unbind(listener) if nil == listener then return end self.dispatcher:removeEventListener(listener) end --事件触发 function EventSystem:fire(event_id,...) local event = cc.EventCustom:new(event_id) event.usedata = {...} self.dispatcher:dispatchEvent(event) end

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...