使CCMenutItemSprite禁用状态可单击

时间:2013-04-10 18:27:05

标签: objective-c cocos2d-iphone ccmenuitem

我正在尝试在禁用状态下使CCMenuItem(例如CCMenuItemSprite)可点击。

我已经将CCMenuItemSprite子类化并覆盖了这些函数:

    -(void) selected
    {
         CCLOG(@"selected");
         [super selected];

         [self setScale:0.775];
         [normalImage_ setVisible:NO];
         [selectedImage_ setVisible:YES];
         [disabledImage_ setVisible:NO];
     }

     -(void) unselected
    {
        CCLOG(@"unselected");
        [super unselected];

        [self setScale:1];
        [normalImage_ setVisible:YES];
        [selectedImage_ setVisible:NO];
        [disabledImage_ setVisible:NO];
    }

    -(void) activate
    {
        CCLOG(@"activate");

        if( block_ )
             block_(self);
    }

基本上我从这三个函数中取出了标志检查isEnabled_。我的场景中有逻辑取消选择除了按钮之外的所有内容(包括关闭菜单)。现在发生的事情是按下按钮后,它被禁用。如果我再次按下它,它就会关闭所有按钮不存在的东西。

我需要的是这些按钮可以在禁用状态下单击(它将运行选中和未选中但不激活)。有谁知道怎么做?

1 个答案:

答案 0 :(得分:0)

在禁用状态下可点击?那为什么你禁用菜单按钮?只需更改普通图像即可禁用图像帧。

[menuBtn setNormalImage:[CCSprite spriteWithSpriteFrame:@"frameDisableBtn.png"] ];
[menuBtn setSelectedImage:[CCSprite spriteWithSpriteFrame:@"frameDisableBtn.png"] ];