当前位置:编程学习 > wap >>

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
补充:移动开发 , 其他 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,