在之前的文章中提及过在主循环执行渲染操作时会单独渲染一个特殊的节点——通知节点(NotificationNode)。
void CCDirector::drawScene(void)
{
...
//处理通知节点
if (m_pNotificationNode)
{
m_pNotificationNode->visit();
}
...
}
这个特殊节点是受导演直接管理,这样做的好处便是能使这个节点独立于某个场景,从而达到被多个场景所共享。
注意:当添加这个节点时会覆盖掉之前的这个特殊节点(如果有的话),这就意味着导演只能管理一个这样的节点。
CCNode* CCDirector::getNotificationNode()
{ //获取通知节点
return m_pNotificationNode;
}
void CCDirector::setNotificationNode(CCNode *node)
{
//清掉上一个通知节点
CC_SAFE_RELEASE(m_pNotificationNode);
//把当前传进来的节点赋给通知节点
m_pNotificationNode = node;
//通知节点的引用计数加1,防止下一帧被回收池给回收掉
CC_SAFE_RETAIN(m_pNotificationNode);
}