2012-08-11 10 views
6

Ich habe ein Spiel, das einen Fortschrittsbalken verwendet, um Spieler über das Niveau bestimmter Statistiken des Spielers zu informieren. Zum Beispiel Hunger, wenn er bei Null beginnt und sich langsam zum maximalen Balken addiert. Wenn er isst, verringert sich der Hunger.Wie Fortschrittsbalken in cocos2d zu machen und korrekt zu aktualisieren?

Ich habe versucht, als Fortschrittsbalken zu implementieren, aber es funktioniert falsch, wie der Balken beide Wege erweitert, und ich brauche es, um nur eine Seite zu wachsen. Auch ich hatte es schwer, die Messlatte zu setzen, da sie Aktionen verwendet.

Gibt es einen einfachen Weg, es zu tun?

Ich habe eine Klasse Pet und es hat Hunger (0-100). Ich möchte, dass die Bar Hunger zeigt.

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

Quelle hinzugefügt.

+0

können Sie Ihren Fortschrittsbalkencode anzeigen? –

Antwort

15

Vor cocos2d 2.0 sollten Sie einfach CCProgressTimer vom Typ: kCCProgressTimerTypeHorizontalBarLR verwenden können.

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

Um Ihren Hunger Ebene zu variieren, geben Sie einfach die Prozentsatz Eigentum Ihrer Bar.

EDITED:

Ok, mit cocos2d 2.0, so scheint es, dass ein solcher Typ ist nicht mehr verfügbar. Um eine links-nach-rechts-Bar zu erhalten, müssen Sie die neuen setzen, aber etwas verwirrend Mittelpunkt und barChangeRate Eigenschaften (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) 

Sehen Sie, wenn diese hilft!

+0

Dies funktioniert nicht in Cocos2d 2. Es gibt keine Methode wie diese, nur Methode mit Sprite, ich habe es gemacht, es ist ok, aber die Bar wächst in beide Richtungen und ich brauche nur eine Möglichkeit. Auch gibt es keinen solchen Typ in cocos2d 2, Es gibt nur folgenden Typ - CCSprite * bar = [CCSprite spriteWithFile: @ "redbar.png"]; powerBar = [CCProgressTimer progressWithSprite: bar]; powerBar.type = kCCProgressTimerTypeBar; – Dvole

+0

Ja, offenbar haben sie den Typ in 2.0 entfernt. Siehe meine bearbeitete Antwort :) –

+0

funktioniert der "bearbeitete Code", danke – kamankily

Verwandte Themen