cocos2d进度条

时间:2010-10-25 12:02:03

标签: objective-c cocos2d-iphone

全部,

我正在使用cocos2d在iPhone上开发一款益智游戏。我需要一个进度条(如uiprogress栏)来显示游戏进度时间。但是我找不到任何好的例子......

谁能告诉我的方式???

2 个答案:

答案 0 :(得分:9)

嗯....我得到了更好的解决方案......这是我的代码

CCProgressFromTo *to1 = [CCProgressFromTo actionWithDuration:levelTimeLimit from:100 to:0];
    timeBar = [CCProgressTimer progressWithFile:@"Bar.png"];
    timeBar.type = kCCProgressTimerTypeHorizontalBarLR;
    [timeBar setPosition:ccp(384,84)];
    [self addChild:timeBar];
    [timeBar runAction:to1];

在最新版本的cocos2d中有一个名为CCProgressTimer的类。

感谢

答案 1 :(得分:1)

您可以使用设置使用宽度的CCSprite

yourSprite.scaleX = 0.5 //This goes between 0.0 and 1.0.

您必须手动计算所需的宽度,百分比和scaleX-factor,但非常简单。我做了我的恶魔般的hp bar实现:

-(void)decreaseHp:(float)hpIn {
    self.hp = self.hp-hpIn;    //Decrease HP by specified amount.
    float p = (self.hp*100)/self.maxHp;    //Calculate new hp percentage.
    self.hpBar.scaleX = p/100;    //Convert percentage to a factor between 0 and 1.
}

self是Fiend对象,hpBar是一个带有锚点ccp(0,0)的简单CCSprite。

你不希望你的进度条拉伸,而是移动,你必须用某些东西掩盖它并更新它的位置而不是scaleX。