在动画结束前禁用CCMenuItem

时间:2013-09-07 17:50:55

标签: objective-c cocos2d-iphone

我有一个CCMenuItem我希望在动画完成之前禁用它,但我想要禁用所有触摸:

    [CCDirector sharedDirector].touchDispatcher.dispatchEvents = NO;

任何简单的解决方案?

2 个答案:

答案 0 :(得分:1)

使用CCSequence首先使用动画动作,完成后,您可以创建一个动作,以CCMenuItem作为参数调用函数,并在该函数中启用它。

代码示例:( PS:自从我使用cocos2d以来已经很长时间了。)

{
...
CCMenuItem *menuItem = [CCMenuItem itemWith...];
menuItem.isEnable = NO;
CCMenu *menu = [CCMenu menuWithItems:menuItem, nil];
[self addChild:menu];

[menuItem runAction:[CCSequence actions:[CCAction actionWith...], [CCCallFunc actionWithTarget:self selector:@selector(enable:)], nil]];
...
}

-(void)enable:(CCMenuItem *)item {
    item.isEnable = YES;
}

答案 1 :(得分:1)

您可以使用

禁用CCMenuItem
CCMenuItem *item = [[CCMenuItem alloc] initWith...];
item.isEnabled = YES;

然后启用它。