2013-02-16 61 views
0

我已經實現了一個酒吧來顯示遊戲中剩餘的時間。如果時間變爲零,我想用一個if循環設置錯誤的結果。但是,如何在特定時間獲得百分比?如何識別酒吧是否空?謝謝如何從cocos2d中獲取CCProgressTimer的時間或百分比?

CCProgressFromTo *to1 = [CCProgressFromTo actionWithDuration:MaxTime from:100 to:0]; 
bar = [CCProgressTimer progressWithFile:@"barra.png"]; 
bar.type = kCCProgressTimerTypeHorizontalBarLR; 
[bar setPosition:ccp(size.width - 250 , size.height - 18)]; 
float per= ????? 

if (per==0) 
{ 
    [self performSelector:@selector(wrong) withObject:nil]; 
} 
+1

CCProgressTimer presentage有個屬性,怎麼樣? – LearnCocos2D 2013-02-16 14:19:41

+0

我已經閱讀過類似的東西..但我沒有找到任何東西... getPercentage或類似的..有可能嗎? – TheInterestedOne 2013-02-16 18:13:00

+0

看看api參考 – LearnCocos2D 2013-02-16 18:18:23

回答

2

我試過這個(cocos2d版本2.x)。精靈是一個水平滑塊軌道,並在進度定時器的設置會給你一個「全在100」走出從右到左巴,空爲0

_pt = [CCProgressTimer progressWithSprite:[CCSprite spriteWithFile:@"slider_track.png"]]; 
    CCProgressFromTo *ft = [CCProgressFromTo actionWithDuration:20 from:100 to:0]; 
    _pt.position= ccp(kScreenWidth/2, kScreenHeight/2); 
    _pt.type=kCCProgressTimerTypeBar; 
    _pt.reverseDirection= NO; 
    _pt.midpoint=ccp(0,1); 
    _pt.barChangeRate= ccp(1,0); 
    [self addChild:_pt]; 
    [_pt runAction:ft]; 
    [self schedule:@selector(watchProgressTimer:) interval:1.0]; 


-(void) watchProgressTimer:(ccTime) dt { 
    MPLOG(@"Progress timer percentage is %f ",_pt.percentage); 
    if(_pt.percentage==0.f){ 
     [self unschedule:@selector(watchProgressTimer:)]; 
     [self removeChild:_pt cleanup:YES]; 
     [self dowhateverYouDoAtZero] ; 
    } 
} 

-(void) dowhateverYouDoAtZero{ 
    // your business logic for expired timer here 
    MPLOG(@"Bang , time's up !!!"); 
} 

給出了這樣的控制檯上

- [MPGameSequencer watchProgressTimer:]:進度計時器百分比是95.254395 - [MPGameSequencer watchProgressTimer:]:進度計時器百分比是90.169464 - [MPGameSequencer watchProgressTimer:]:進度計時器百分比是85.168495 - [MPGameSequencer watchProgressTimer:]:進度計時器百分比是79.918976 - [MPGameSequencer watchProgressTimer:]:P rogress計時器百分比是74.670525 - [MPGameSequencer watchProgressTimer:]:進度計時器百分比是69.669678 - [MPGameSequencer watchProgressTimer:]:進度計時器百分比是64.667480 - [MPGameSequencer watchProgressTimer:]:進度計時器百分比是59.419960 - [MPGameSequencer watchProgressTimer: ]:進度計時器百分比是54.168777 - [MPGameSequencer watchProgressTimer:]:進度計時器百分比是49.167599 - [MPGameSequencer watchProgressTimer:]:進度計時器百分比是43.920143 - [MPGameSequencer watchProgressTimer:]:進度計時器百分比是38.919609 - [MPGameSequencer watchProgressTimer:]:進度計時器百分比是33.919609 - [MPGameSequencer watchProgressTim ER:]:進展定時器百分比是28.917831 - [MPGameSequencer watchProgressTimer:]:進展定時器百分比是23.669678 - [MPGameSequencer watchProgressTimer:]:進展定時器百分比是18.667908 - [MPGameSequencer watchProgressTimer:]:進展定時器百分比是13.418236 - [MPGameSequencer watchProgressTimer:]:進展計時器比例是8.168266 - [MPGameSequencer watchProgressTimer:]:進展計時器比例是3.167412 - [MPGameSequencer watchProgressTimer:]:進展計時器比例是0.000000 - [MPGameSequencer dowhateverYouDoAtZero]:爆炸,時間到了! !

+0

它工作完美! – TheInterestedOne 2013-02-16 18:19:39

0

在cocos2d-x你得到這樣

bar->getPresentage();