1

我有一个CCMenuItem并且我想禁用它直到动画完成,但我不想禁用所有触摸:

    [CCDirector sharedDirector].touchDispatcher.dispatchEvents = NO;

有什么简单的解决办法吗?

4

2 回答 2

1

用于CCSequence首先使用动画动作,完成后创建一个动作,该动作使用CCMenuItemas 参数调用函数,并在该函数中启用它。

代码示例:(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;
}
于 2013-09-07T17:58:12.770 回答
1

您可以使用禁用 CCMenuItem

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

并在之后启用它。

于 2013-09-13T08:50:32.820 回答