我已经实施了一个栏来显示游戏中玩家的剩余时间。如果时间变为零,我想用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];
}
答案 0 :(得分: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 - [MPGameSequencer watchProgressTimer:]:进度计时器百分比为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]:砰的一声,时间到了!
答案 1 :(得分:0)
在cocos2d-x中你会得到像这样的场景
bar->getPresentage();