2010-12-18 7 views
0

Ich versuche, eine Leistung in dem Spiel zu entsperren, das ich für das iPhone mache, aber ziemlich erfolglos zu sein.Freischalten Achievement - GameCenter iPhone

Von Apples eigenen GKTapper-Projektbeispiel, das Game Center-Code demonstriert Ich habe die Dateien GameCenterManager.h und .m und die AppSpecificValues.h in mein Projekt kopiert. Ich habe erfolgreich die Erfolge und Bestenlisten zum Ansehen geladen.

Allerdings kann ich nicht trainieren oder richtig bekommen, wie man tatsächlich eine Errungenschaft freischaltet. Könnte jemand darauf hinweisen, wie ich diesen oder ohne den GameCenterManager nutzen kann, wie kann ich eine Errungenschaft freischalten?

Danke.

Antwort

2
- (void) reportAchievementIdentifier: (NSString*) identifier percentComplete: (float) percent 
{ 
    GKAchievement *achievement = [[[GKAchievement alloc] initWithIdentifier: identifier] autorelease]; 
    if (achievement) 
    { 
     achievement.percentComplete = percent; 
     [achievement reportAchievementWithCompletionHandler:^(NSError *error) 
      { 
        if (error != nil) 
        { 
         // Retain the achievement object and try again later (not shown). 
        } 
      }]; 
    } 
} 

Rufen Sie diese Methode wie folgt:

[self reportAchievementIdentifier:indentifier percentComplete:percent]; 

Wenn Sie wollen einfach nur den Erfolg Anruf entsperren diese:

[self reportAchievementIdentifier:indentifier percentComplete:100.0]; 

Sie können die Schwimmer für berechnen den Prozentsatz der Leistung verwenden und wenn der Benutzer die 100 erreicht, wird der Erfolg freigeschaltet.

Sie können dies auch tun:

[self reportAchievementIdentifier:indentifier percentComplete:((actualpoints/neededPoints)*100.0)]; 

neededPoints bedeutet, dass die Punkte, die Sie diese Leistung für Unlock benötigen. Zum Beispiel: actualPoints = 300; benötigtePunkte = 600;

Es berechnet: 300/600 = 0,5 * 100 = 50%

0

Btw, ist die "abgeschlossen" Eigenschaft nicht immer auf YES gesetzt, wenn Sie gesetzt percentComplete = 100, zumindest nicht in der gleichen Sitzung. Ich habe eine Weile damit verbracht, zu debuggen, warum mein Spiel Erfolge mehrfach vergeben hat, selbst wenn procentComplete auf 100 gesetzt wurde.

Verwandte Themen