如何在cocos2d中制作并正确更新进度条?

时间:2012-08-11 06:20:41

标签: objective-c cocos2d-iphone

我有一个游戏,它使用进度条告知玩家玩家某些统计数据的等级。例如饥饿,当它从零开始并慢慢加起来达到最大值。当他吃东西时,饥饿减少了。

我尝试将其作为progressBar实现,但它的工作方式有误,因为条形图扩展了两种方式,我只需要将它扩展到一边。此外,我很难设置栏,因为它使用了操作。

有一种简单的方法吗?

我有一个Pet类,它有饥饿感(0-100)。我希望酒吧显示出饥饿感。

hungerBar = [CCSprite spriteWithFile:@"redbar.png"];
    CCLabelTTF *hungerLabel = [CCLabelTTF labelWithString:@"Hunger:" fontName:@"Helvetica" fontSize:25];
    [hungerLabel setColor:ccc3(255, 255, 255)];

//    CGPoint temp = ccp(250, 300);
//    hungerBar.position = temp;
 //   [self addChild:hungerBar];
    CGPoint temp2 = ccp(250, 320);
    [hungerLabel setPosition:temp2];
    [self addChild:hungerLabel];

    CCSprite *bar = [CCSprite spriteWithFile:@"redbar.png"];
    powerBar= [CCProgressTimer progressWithSprite:bar];
    powerBar.type = kCCProgressTimerTypeBar;
    powerBar.position = ccp(-30, -10);
    powerBar.anchorPoint = ccp(0, 0);
    powerBar.percentage = 20; // (0 - 100)
    [hungerLabel addChild:powerBar];

添加了来源。

1 个答案:

答案 0 :(得分:15)

在cocos2d 2.0之前,您应该只能使用CCProgressTimer类型: kCCProgressTimerTypeHorizo​​ntalBarLR

CCProgressTimer* powerBar= [CCProgressTimer progressWithFile:@"fullbar.png"];
powerBar.type = kCCProgressTimerTypeHorizontalBarLR;
powerBar.percentage = 0; // (0 - 100)

要改变您的饥饿程度,只需设置酒吧的百分比属性。

<强>编辑:

好的,使用cocos2d 2.0,似乎这种类型不再可用。要获得从左到右的栏,您需要设置新的但有些令人困惑的中点 barChangeRate 属性(cocos2D 2.0 documentation link):

CCProgressTimer* powerBar= [CCProgressTimer progressWithSprite:[CCSprite spriteWithFile:@"fullbar.png"]];
powerBar.type = kCCProgressTimerTypeBar;
powerBar.midpoint = ccp(0,0); // starts from left
powerBar.barChangeRate = ccp(1,0); // grow only in the "x"-horizontal direction
powerBar.percentage = 0; // (0 - 100)

看看这些是否有帮助!