2012-08-11 11 views
6

私はプログレスバーを使用して、プレーヤーの特定のステータスのレベルをプレーヤーに知らせるゲームを持っています。たとえば空腹で、ゼロから始まり、ゆっくりと最大のバーになります。彼が食べると飢えが減る。cocos2dの進行状況バーを正しく更新する方法は?

私は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]; 

ソースが追加されました。

+0

進行状況を示すことができますか? –

答えて

15

cocos2d 2.0より前のバージョンでは、kCCProgressTimerTypeHorizo​​ntalBarLRのCCProgressTimerを使用するだけで済みます。

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

単にあなたのバーの割合プロパティを設定し、あなたの空腹レベルを変化させること。

EDITED:cocos2d 2.0で、[OK]を

、そのようなタイプが利用できなくなったことを思いません。これらの場合に役立ちます参照してください

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) 

:左から右へのバーを取得するには、新しいやや混乱中間点barChangeRateプロパティ(cocos2D 2.0 documentation link)を設定する必要があります!

+0

これはCocos2d 2では動作しません。スプライトのメソッドだけですが、このメソッドはありません。また、cocos2d 2にはそのような型はありません。次の型だけがあります - CCSprite * bar = [CCSprite spriteWithFile:@ "redbar.png"]; powerBar = [CCProgressTimer progressWithSprite:bar]; powerBar.type = kCCProgressTimerTypeBar; – Dvole

+0

そうですが、明らかに彼らは2.0の型を削除しました。私の編集した答えを見てください:) –

+0

"編集されたコード"が動作します、ありがとう – kamankily

関連する問題