0

我想在我的应用程序的一些 cocos2d 按钮中进行按住动作,以便将它们按住 3 秒钟,然后显示它将带来的东西。例如:

CCMenuItemImage * menuBtnSettings = [CCMenuItemImage
                                         itemWithNormalSprite:[CCSprite spriteWithSpriteFrameName:@"settingsButton_over"]
                                         selectedSprite:[CCSprite spriteWithSpriteFrameName:@"settingsButton_down"]
                                         disabledSprite:[CCSprite spriteWithSpriteFrameName:@"settingsButton_over"]
                                         target:self
                                         selector:@selector(showSettings)];

    [menu addChild:menuBtnSettings z:3 tag:20];
    [menuItemsArray addObject:menuBtnSettings];

有没有办法在不影响整个应用程序的情况下做到这一点?因为只有三个按钮会有那个特殊的动作。

谢谢!

4

1 回答 1

0

您可以继承 CCMenuItemImage 并覆盖“selected”方法。

-(void) selected{

  isSelected_ = YES;
  if( selectedImage_ ) {
        [normalImage_ setVisible:NO];
        [selectedImage_ setVisible:YES];
        [selectedImage_ runAction:[CCSequence actions:[CCDelayTime actionWithDuration:3],[CCCallFunc actionWithTarget:self selector:@selector(makeVisibile),]nil]];

    [disabledImage_ setVisible:NO];

  } else { // there is not selected image

    [normalImage_ setVisible:YES];
    [selectedImage_ setVisible:NO];
    [disabledImage_ setVisible:NO];
  }

}

-(void)makeVisible{  
     [ selectedImage_ setVisibile:YES];
}

注意:我没有测试过上面的代码。只是想表达这个想法

于 2013-09-27T12:11:38.393 回答