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 より前では、タイプ kCCProgressTimerTypeHorizo ​​ntalBarLRの CCProgressTimer のみを使用できるはずです。

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

空腹レベルを変えるには、バーのパーセンテージプロパティを設定するだけです。

編集:

わかりました、cocos2d 2.0 では、そのようなタイプは使用できなくなったようです。左から右へのバーを取得するには、新しいがやや紛らわしいmidpointおよびbarChangeRateプロパティを設定する必要があります ( 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 に答える