2013-04-30 51 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]; 
} 

這樣,當玩家不能再使用按鈕,它被禁用,並且對他們顯而易見,它們不能使用它