0

ゲームの残り時間をプレーヤーに表示するためのバーを実装しました。時間がゼロになった場合、ifサイクルで間違った結果を設定したいと思います。しかし、特定の瞬間にパーセンテージを取得するにはどうすればよいですか?バーが空かどうかはどうすればわかりますか?ありがとうございました

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];
}
4

2 に答える 2

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:]:進行タイマーのパーセンテージは74.670525-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは69.669678-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは64.667480-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは59.419960-[MP :]:進行タイマーのパーセンテージは54.168777-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは49.167599-[MPGameSequencer watchProgressTimer:]:プログレスタイマーのパーセンテージは43.920143-[MPGameSequencerwatchProgressTimer:]:プログレスタイマーのパーセンテージは38.919609-[MPGameSequencer watchProgressTimer:]:プログレスタイマーのパーセンテージは33.919609-[MPGameSequencer watchProgressTimer:]:プログレスタイマーのパーセンテージは28.917831-[MPGameSequencer watchProgressTimer:]パーセンテージは23.669678-[MPGameSequencerwatchProgressTimer:]:進行タイマーのパーセンテージは18.667908-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは13.418236-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは8.168266-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは3.167412-[MPGameSequencer watchProgressTimer:]:プログレスタイマーのパーセンテージは0.000000です-[MPGameSequencer dowhateverYouDoAtZero]:バン、タイムアップ!!!920143-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは38.919609-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは33.919609-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは28.917831-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは23です。 [MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは18.667908-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは13.418236-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは8.168266-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは3.167412-[MPGameSequen watchProgressTimer:]:進行タイマーのパーセンテージは0.000000です-[MPGameSequencer dowhateverYouDoAtZero]:バン、時間切れです!!!920143-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは38.919609-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは33.919609-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは28.917831-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは23です。 [MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは18.667908-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは13.418236-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは8.168266-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは3.167412-[MPGameSequen watchProgressTimer:]:進行タイマーのパーセンテージは0.000000です-[MPGameSequencer dowhateverYouDoAtZero]:バン、時間切れです!!!プログレスタイマーのパーセンテージは38.919609-[MPGameSequencerwatchProgressTimer:]:プログレスタイマーのパーセンテージは33.919609-[MPGameSequencer watchProgressTimer:]:プログレスタイマーのパーセンテージは28.917831-[MPGameSequencer watchProgressTimer:]:プログレスタイマーのパーセンテージは23.669678-[MPGameSequencer watchProgressTimer:]パーセンテージは18.667908-[MPGameSequencerwatchProgressTimer:]:進行タイマーのパーセンテージは13.418236-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは8.168266-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは3.167412-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは0.000000-[MPGameSequencer dowhateverYouDoAtZero]:バン、タイムアップ!!!プログレスタイマーのパーセンテージは38.919609-[MPGameSequencerwatchProgressTimer:]:プログレスタイマーのパーセンテージは33.919609-[MPGameSequencer watchProgressTimer:]:プログレスタイマーのパーセンテージは28.917831-[MPGameSequencer watchProgressTimer:]:プログレスタイマーのパーセンテージは23.669678-[MPGameSequencer watchProgressTimer:]パーセンテージは18.667908-[MPGameSequencerwatchProgressTimer:]:進行タイマーのパーセンテージは13.418236-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは8.168266-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは3.167412-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは0.000000-[MPGameSequencer dowhateverYouDoAtZero]:バン、タイムアップ!!!919609-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは28.917831-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは23.669678-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは18.667908-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは13.418 [MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは8.168266-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは3.167412-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは0.000000-[MPGameSequencer dowhateverYouDoAtZero]:バン、タイムアップ!!!919609-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは28.917831-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは23.669678-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは18.667908-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは13.418 [MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは8.168266-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは3.167412-[MPGameSequencer watchProgressTimer:]:進行タイマーのパーセンテージは0.000000-[MPGameSequencer dowhateverYouDoAtZero]:バン、タイムアップ!!!プログレスタイマーのパーセンテージは18.667908-[MPGameSequencerwatchProgressTimer:]:プログレスタイマーのパーセンテージは13.418236-[MPGameSequencer watchProgressTimer:]:プログレスタイマーのパーセンテージは8.168266-[MPGameSequencer watchProgressTimer:]:プログレスタイマーのパーセンテージは3.167412-[MPGameSequencer watchProgressTimer:]:プログレスタイマーパーセンテージは0.000000です-[MPGameSequencerdowhateverYouDoAtZero]:バン、タイムアップ!!!プログレスタイマーのパーセンテージは18.667908-[MPGameSequencerwatchProgressTimer:]:プログレスタイマーのパーセンテージは13.418236-[MPGameSequencer watchProgressTimer:]:プログレスタイマーのパーセンテージは8.168266-[MPGameSequencer watchProgressTimer:]:プログレスタイマーのパーセンテージは3.167412-[MPGameSequencer watchProgressTimer:]:プログレスタイマーパーセンテージは0.000000です-[MPGameSequencerdowhateverYouDoAtZero]:バン、タイムアップ!!!

于 2013-02-16T15:05:12.953 に答える
0

cocos2d-xでは、このようなプレゼンターを取得します

bar->getPresentage();
于 2013-11-26T11:55:28.910 に答える