2013-04-30 49 views
0

这是我的功率升按钮:无效按钮

CCMenuItemImage *bottone = [CCMenuItemImage itemFromNormalImage:@"Icon-72.png" selectedImage:@"Icon-72.png" target:self selector:@selector(bottone)]; 
bottone.position = ccp(200,-100); 

CCMenu *menu = [CCMenu menuWithItems:bottone, nil]; 
[self addChild:menu]; 

这是方法,当我触摸按钮:

-(void) bottone 

{ 
    float scaleDuration = 1.0; 
    float waitDuration = 5.0; 
    _invincible = YES; 
    CCParticleSystemQuad *boostEffect = [_boostEffects nextParticleSystem]; 
    [boostEffect resetSystem]; 

    [_ship runAction: 
    [CCSequence actions: 
    // [CCMoveBy actionWithDuration:scaleDuration position:ccp(winSize.width * 0.6, 0)], 
     [CCDelayTime actionWithDuration:waitDuration], 
//  [CCMoveBy actionWithDuration:scaleDuration position:ccp(-winSize.width * 0.6, 0)], 
     nil]]; 

    [self runAction: 
    [CCSequence actions: 
     // [CCScaleTo actionWithDuration:scaleDuration scale:0.75], 
     [CCDelayTime actionWithDuration:waitDuration], 
     [CCScaleTo actionWithDuration:scaleDuration scale:1.0], 
     [CCCallFunc actionWithTarget:self selector:@selector(boostDone)], 
     nil]]; 
} 

它的工作原理,但我想的是,玩家可以使用通电X次。解释更好,触摸按钮1或2次并停止,按钮变得不可用。

+0

计数使用次数,然后if(numUses LearnCocos2D 2013-04-30 17:39:44

回答

1

使您的菜单成为实例变量,然后创建一个计数器来检查LearnCocos2D建议使用的次数。并定义最大使用数量,即

// In your .h 
int _numUses = 0; 
CCMenu *menu; 

// In your .m 
#define kMaxUses 2 

然后,您可以通过几种方式处理限制。首先按下按钮,以判断它是可以使用

if(_numUses < kMaxUses) { 
    // do use 
} 

我个人不喜欢这种方法,因为它留下用户仍然可以按下按钮没有任何信息,它不会工作后,你可以检查。用户可能会认为游戏中的某些东西被破坏了。我会做什么,是在你的按钮方法的动作结束时(增加_numUses之后)禁用按钮。要做到这一点,当你创建按钮标记值添加到它即

CCMenuItemImage *bottone = [CCMenuItemImage itemFromNormalImage:@"Icon-72.png" selectedImage:@"Icon-72.png" target:self selector:@selector(bottone)]; 
bottone.position = ccp(200,-100); 
buttone.tag = 100; 

menu = [CCMenu menuWithItems:bottone, nil]; 
[self addChild:menu]; 

然后在您的按钮方法的最后,添加此

_numUses += 1; 
if(_numUses > kMaxUses) { 
    CCMenuItemImage *buttone = (CCMenuItemImage *)[menu getChildByTag:100]; 
    [buttone setIsEnabled:NO]; 
} 

这样,当玩家不能再使用按钮,它被禁用,并且对他们显而易见,它们不能使用它