HI
最近在学习 cocos2d for wp 还是菜鸟级别的
使用的是Cocos2dx-2.1.0-wp8-2.0-alpha.zip 这个github 上也有。想使用CCNotificationCenter相关方法 去在node之间传递消息,但是按照例子发现 postNotification 一直都没有效果,后来跟源码如下:
void CCNotificationCenter::addObserver(…name…)//通过字符串名称注册监听某消息
{…
CCNotificationObserver *observer = new CCNotificationObserver(…name…);
…
}
而 observer 对象的构造函数里
CCNotificationObserver::CCNotificationObserver(…name…)
{…
m_name = new char;
memset(m_name,0,strlen(name)+1);
string orig (name);
//bug fix me orig.copy(m_name,strlen(name),0);//这个是代码里的原始注释
…} 此处name 并没有传入m_name 始终都是0; 也就是监听对象所监听的消息名称一直都是0
这导致后面CCNotificationCenter 在分发消息的时候 完全没理法执行
void CCNotificationCenter::postNotification(const char *name, CCObject *object)
{…
if (!strcmp(name,observer->getName())) //如果发消息的消息名称如果不为0 则一直无法响应消息
observer->performSelector(object);
…}
这看起来似乎有点奇怪…或者是我没理解作者的意思 请高人们解答一下,谢谢 。