2012年7月6日金曜日

【cocos2d】CCMenuItemのisEnabledをCCMenuごとまとめて切り替える

CCMenuにisEnabledがないのでどうすんのかなーって思ってたので。

- (void)switchMenuIsEnabledWithMenu:(CCMenu*)menu isEnabled:(BOOL)isEnabled
{
    CCArray *children = [menu children];
    CCNode *child;
    CCARRAY_FOREACH(children, child){
        CCMenuItem *item = (CCMenuItem*)child;
        item.isEnabled = isEnabled;
    }
}

わざわざこんなことしてましたが、CCLayerのサブクラスなのでCCMenuのisTouchEnabledを変えればOKでした。

- (void)hoge
{
    CCMenuItem *item = [CCMenuItem itemWithTarget:self selector:@selector(piyo)];
    CCMenu *menu = [CCMenu menuWithItems:item, nil];
    [self addChild:menu];
    // これで効かなくなる
    menu.isTouchEnabled = NO;
}

0 件のコメント: