我正在做一个小型 Cocos2d-x 项目,我受到CCDirector::sharedDirector()
Cocos2d-x 中方法和其他共享实例实现的“单例”模式的启发。例如,在CCDirector.cpp
我们有
static CCDisplayLinkDirector *s_SharedDirector = NULL;
// ...
CCDirector* CCDirector::sharedDirector(void)
{
if (!s_SharedDirector)
{
s_SharedDirector = new CCDisplayLinkDirector();
s_SharedDirector->init();
}
return s_SharedDirector;
}
void CCDirector::purgeDirector()
{
// cleanup scheduler
getScheduler()->unscheduleAll();
// ...
// delete CCDirector
release();
}
该purgeDirector()
方法清除所有其他共享实例,如共享动画缓存、共享精灵帧缓存等 - 都在同一个模具中铸造。我想自己做几个,比如共享游戏大厅。
我宁愿不修改 CCDirector,因为它肯定会发生变化。
有什么自然的地方可以放我的清除代码吗?是否有可能在cocos2d::CCDirector::sharedDirector()->end()
被调用或类似时响起回调?谢谢!