cocos2d使用半单例
cocos2d: 使用半单例
把MultiLayerScene设置成半单例,目的是让别的对象可以直接访问MultiLayerScene
[html]
static MultiLayerScene* multiLayerSceneInstance;
+(MultiLayerScene*) sharedLayer
{
NSAssert(multiLayerSceneInstance != nil, @"MultiLayerScene not available!");
return multiLayerSceneInstance;
}
//初始化MultiLayerScene
-(id) init
{
if ((self = [super init]))
{
multiLayerSceneInstance = self;
// GameLayer层
GameLayer* gameLayer = [GameLayer node];
[self addChild:gameLayer z:1 tag:LayerTagGameLayer];
}
return self;
}
-(void) action1
{
// do something
}
-(void) dealloc
{
multiLayerSceneInstance = nil;
// don't forget to call "super dealloc"
[super dealloc];
}
访问半单例方法,如在GameLayer层中可以这样访问MultiLayerScene中的action1方法:
[html] www.zzzyk.com
[[MultiSceneLayer shareLayer] action1];
半单例与普通的单例类不同,任何时候只存在一个MultiLayerScene的实例,它不能被用来初始化MultiLayerScene。
作者:wangqiuyun
补充:移动开发 , 其他 ,