2012-08-11 7 views
6

Ho un gioco che utilizza una barra di avanzamento per informare il giocatore del livello di alcune statistiche del giocatore. Ad esempio la fame, quando inizia a zero e aggiunge lentamente alla barra massima. Quando mangia la fame si riduce.Come creare e aggiornare correttamente la barra di avanzamento in cocos2d?

Ho provato a implementare come progressBar, ma funziona male, poiché la barra si espande in entrambe le direzioni e ho bisogno che cresca solo da un lato. Inoltre ho avuto difficoltà a impostare la barra, poiché utilizza le azioni.

C'è un modo semplice per farlo?

Ho un animale domestico di classe e ha fame (0-100). Voglio che il bar mostri la fame.

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

Fonte aggiunta.

+0

sei in grado di mostrare il codice progressbar? –

risposta

15

Prima di cocos2d 2.0, si dovrebbe essere in grado di utilizzare CCProgressTimer di tipo: kCCProgressTimerTypeHorizontalBarLR.

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

di variare il vostro livello di fame, è sufficiente impostare la percentuale di proprietà della barra.

Modificato:

Ok, con cocos2d 2.0, sembra che un tale tipo non è più disponibile. Per ottenere un sinistra-destra-bar, è necessario impostare i nuovi ma un po 'di confusione punto medio e barChangeRate proprietà (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) 

vedere se questi aiuti!

+0

Questo non funziona in Cocos2d 2. Non esiste un metodo come questo, solo il metodo con sprite, l'ho fatto, è ok, ma la barra cresce in entrambi i modi e ho bisogno di un solo modo. Inoltre non esiste questo tipo in cocos2d 2, esiste solo il seguente tipo - CCSprite * bar = [CCSprite spriteWithFile: @ "redbar.png"]; powerBar = [CCProgressTimer progressWithSprite: bar]; powerBar.type = kCCProgressTimerTypeBar; – Dvole

+0

Sì, a quanto pare hanno rimosso il tipo in 2.0. Vedi la mia risposta modificata :) –

+0

funziona il "Codice modificato", grazie – kamankily