加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

quick cocos2dx 自定义事件管理器

发布时间:2020-12-14 17:22:47 所属栏目:百科 来源:网络整理
导读:--事件系统 ---------------------------------- EventSystem = class("EventSystem") function EventSystem:ctor() self.dispatcher = cc.Director:getInstance():getEventDispatcher(); self.tCount = {} end --事件绑定 function EventSystem:bind(event_i
--事件系统 ---------------------------------- 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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读