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];
}

访问半单例方法,如在GameLayer层中可以这样访问MultiLayerScene中的action1方法:

[[MultiSceneLayer shareLayer] action1];

半单例与普通的单例类不同,任何时候只存在一个MultiLayerScene的实例,它不能被用来初始化MultiLayerScene。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值