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 -[MPGameSequencerTimer :] :进度计时器百分比为 54.168777 -[MPGameSequencer watchProgressTimer:] :进度计时器百分比为 49.167599 -[MPGameSequencer watchProgressTimer:] :进度计时器百分比为 43.920143 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 38.919609 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 33.919609 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 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]:砰,时间到了!!!920143 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 38.919609 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 33.919609 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 28.917831 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 23.66 [MPGameSequencer watchProgressTimer:]:进度计时器百分比为 18.667908 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 13.418236 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 8.168266 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 3.167412 -[MPGameSequencer watchProgressTimer:] : 进度计时器百分比是 0.000000 -[MPGameSequencer dowhateverYouDoAtZero] : Bang ,时间到了!!!920143 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 38.919609 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 33.919609 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 28.917831 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 23.66 [MPGameSequencer watchProgressTimer:]:进度计时器百分比为 18.667908 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 13.418236 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 8.168266 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 3.167412 -[MPGameSequencer watchProgressTimer:] : 进度计时器百分比是 0.000000 -[MPGameSequencer dowhateverYouDoAtZero] : Bang ,时间到了!!!进度计时器百分比为 38.919609 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 33.919609 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 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]:砰,时间到了!!!进度计时器百分比为 38.919609 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 33.919609 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 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]:砰,时间到了!!!919609 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 28.917831 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 23.669678 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 18.667908 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 13.48 [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.48 [MPGameSequencer watchProgressTimer:]:进度计时器百分比为 8.168266 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 3.167412 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 0.000000 -[MPGameSequencer dowhateverYouDoAtZero]:砰,时间到了!!!进度计时器百分比为 18.667908 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 13.418236 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 8.168266 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 3.167412 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比是 0.000000 -[MPGameSequencer dowhateverYouDoAtZero]:砰,时间到了!!!进度计时器百分比为 18.667908 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 13.418236 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 8.168266 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比为 3.167412 -[MPGameSequencer watchProgressTimer:]:进度计时器百分比是 0.000000 -[MPGameSequencer dowhateverYouDoAtZero]:砰,时间到了!!!

于 2013-02-16T15:05:12.953 回答
0

在 cocos2d-x 中你会得到这样的演示文稿

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