首页 > 代码库 > cocos2dx 消息发送与接收
cocos2dx 消息发送与接收
cocos2dx有个自定义事件可以实现消息的发送和接收,叫EventListenerCustom。它是通过一个字符串来标识事件名称的。下面介绍下,我实现的这个消息的发送和接收。
首先,我们定义2个类,一个消息接收类,一个消息发送类。代码如下:
//消息接收class cMsgReceiver{public: virtual void RecMsg(int iMsgId, void* pInfo, int iSize) { }};//消息发送class cMsgSender{protected: cMsgReceiver* m_pReceiver;public: void setMsg(cMsgReceiver* receiver) { m_pReceiver = receiver; } bool sendMsg(int iMsgId, void* pInfo, int iSize) { if (m_pReceiver == NULL) { return false; } else { m_pReceiver->RecMsg(iMsgId, pInfo, iSize); return true; } }};
那么,如何使用呢,很简单。
//消息体struct Msg_ServerId{ int iServerId;};//消息idenum MsgId{ E_SERVERID = 1,};class A:public cMsgReceiver{public: void RecMsg(int iMsgId, void* pInfo, int iSize) { switch (iMsgId) { case E_SERVERID: Msg_ServerId* msg = (Msg_ServerId*)pInfo; int id = msg->iServerId; break; } }};class B:public cMsgSender{public: void doSendMsg() { Msg_ServerId msg; msg.iServerId = 1; sendMsg(E_SERVERID, &msg, sizeof(msg)); }};
A a;B b;b.setMsg(&a);b.doSendMsg();
cocos2dx 消息发送与接收
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。