cocos2d使用半单例
cocos2d使用半单例
cocos2d: 使用半单例
把MultiLayerScene设置成半单例,目的是让别的对象可以直接访问MultiLayerScene
- 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];
- }
- [[MultiSceneLayer shareLayer] action1];
半单例与普通的单例类不同,任何时候只存在一个MultiLayerScene的实例,它不能被用来初始化MultiLayerScene。
评论暂时关闭