6

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

我尝试实现为progressBar,但它工作错误,因为栏会双向扩展,我需要它只向一侧增长。我也很难设置标准,因为它使用动作。

有没有简单的方法来做到这一点?

我有一个类宠物,它有饥饿感(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];

添加源。

4

1 回答 1

15

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

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

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

编辑:

好的,用cocos2d 2.0,好像没有这种类型了。要获得从左到右的条形图,您需要设置新的但有些令人困惑的midpointbarChangeRate属性(cocos2D 2.0 文档链接):

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)

看看这些有没有帮助!

于 2012-08-11T07:19:12.487 回答