2012-08-11 5 views
6

Tengo un juego que usa una barra de progreso para informar al jugador del nivel de ciertas estadísticas del jugador. Por ejemplo, hambre, cuando comienza en cero y lentamente se suma a la barra máxima. Cuando come, el hambre se reduce.¿Cómo hacer y actualizar correctamente la barra de progreso en cocos2d?

Intenté implementar como progressBar, pero funciona mal, ya que la barra se expande en ambos sentidos, y necesito que crezca solo en un lado. También tuve dificultades para configurar la barra, ya que usa acciones.

¿Hay una manera fácil de hacerlo?

Tengo una clase Pet y tiene hambre int (0-100). Quiero que la barra muestre hambre.

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

Fuente añadida.

+0

¿eres capaz de mostrar tu código progressBar? –

Respuesta

15

Antes de cocos2d 2.0, debería poder simplemente usar CCProgressTimer del tipo: kCCProgressTimerTypeHorizontalBarLR.

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

variar su nivel de hambre, sólo tiene que establecer el porcentaje propiedad de la barra.

Editado:

bien, con cocos2d 2.0, parece que tal tipo ya no está disponible. Para obtener una izquierda-derecha-bar, tendrá que establecer los nuevos, pero un poco confusas punto medio y barChangeRate propiedades (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) 

ver si estos ayuda!

+0

Esto no funciona en Cocos2d 2. No hay un método como este, solo método con sprite, lo hice, está bien, pero la barra crece en ambos sentidos y solo necesito una forma. Además, no existe dicho tipo en cocos2d 2, solo existe el siguiente tipo: CCSprite * bar = [CCSprite spriteWithFile: @ "redbar.png"]; powerBar = [CCProgressTimer progressWithSprite: bar]; powerBar.type = kCCProgressTimerTypeBar; – Dvole

+0

Sí, aparentemente eliminaron el tipo en 2.0. Ver mi respuesta editada :) –

+0

funciona el "código editado", gracias – kamankily

Cuestiones relacionadas