1

がありCCMenuItem、アニメーションが終了するまで無効にしたいのですが、すべてのタッチを無効にしたくありません:

    [CCDirector sharedDirector].touchDispatcher.dispatchEvents = NO;

簡単な解決策はありますか?

4

2 に答える 2

1

CCMenuItem を無効にすることができます

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

後で有効にします。

于 2013-09-13T08:50:32.820 に答える
1

最初にアニメーション アクションを使用するために使用CCSequenceします。それが完了したら、as パラメーターを使用して関数を呼び出すアクションを作成し、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;
}
于 2013-09-07T17:58:12.770 に答える