iOS - GameKit

Gamekit ist ein Framework, das einer iOS-Anwendung Ranglisten, Erfolge und weitere Funktionen bietet. In diesem Tutorial erklären wir die Schritte zum Hinzufügen einer Rangliste und zum Aktualisieren der Punktzahl.

Beteiligte Schritte

Step 1 - Stellen Sie in iTunes Connect sicher, dass Sie eine haben unique App ID und wenn wir das Anwendungsupdate mit dem erstellen bundle ID und Codesignatur in Xcode mit dem entsprechenden Bereitstellungsprofil.

Step 2- Erstellen Sie eine neue Anwendung und aktualisieren Sie die Anwendungsinformationen. Weitere Informationen hierzu finden Sie in der Dokumentation zu neuen Apps von Apple.

Step 3 - Richten Sie eine Rangliste ein Manage Game Center auf der Seite Ihrer Anwendung, wo Sie eine einzelne Bestenliste hinzufügen und geben leaderboard IDund Punktzahltyp. Hier geben wir die Ranglisten-ID als TutorialPoint an.

Step 4 - Die nächsten Schritte beziehen sich auf den Umgang mit Code und das Erstellen einer Benutzeroberfläche für unsere Anwendung.

Step 5 - Erstellen Sie eine single view application und geben Sie die bundle identifier ist die in angegebene Kennung iTunes connect.

Step 6 - Aktualisieren Sie die ViewController.xib wie unten gezeigt -

Step 7 - Wählen Sie Ihre Projektdatei aus und wählen Sie dann targets und dann hinzufügen GameKit.framework.

Step 8 - Erstellen IBActions für die Schaltflächen haben wir hinzugefügt.

Step 9 - Aktualisieren Sie die ViewController.h Datei wie folgt -

#import <UIKit/UIKit.h>
#import <GameKit/GameKit.h>

@interface ViewController : UIViewController
<GKLeaderboardViewControllerDelegate>

-(IBAction)updateScore:(id)sender;
-(IBAction)showLeaderBoard:(id)sender;

@end

Step 10 - Update ViewController.m wie folgt -

#import "ViewController.h"

@interface ViewController ()
@end

@implementation ViewController

- (void)viewDidLoad {
   [super viewDidLoad];
   if([GKLocalPlayer localPlayer].authenticated == NO) {
      [[GKLocalPlayer localPlayer] 
      authenticateWithCompletionHandler:^(NSError *error) {
         NSLog(@"Error%@",error);
      }];
   }    
}

- (void)didReceiveMemoryWarning {
   [super didReceiveMemoryWarning];
   // Dispose of any resources that can be recreated.
}

- (void) updateScore: (int64_t) score 
   forLeaderboardID: (NSString*) category {
   GKScore *scoreObj = [[GKScore alloc]
   initWithCategory:category];
   scoreObj.value = score;
   scoreObj.context = 0;
   
   [scoreObj reportScoreWithCompletionHandler:^(NSError *error) {
      // Completion code can be added here
      UIAlertView *alert = [[UIAlertView alloc]
      initWithTitle:nil message:@"Score Updated Succesfully" 
      delegate:self cancelButtonTitle:@"Ok" otherButtonTitles: nil];
      [alert show];
   }];
}

-(IBAction)updateScore:(id)sender {
   [self updateScore:200 forLeaderboardID:@"tutorialsPoint"];
}

-(IBAction)showLeaderBoard:(id)sender {
   GKLeaderboardViewController *leaderboardViewController =
   [[GKLeaderboardViewController alloc] init];
   leaderboardViewController.leaderboardDelegate = self;
   [self presentModalViewController:
   leaderboardViewController animated:YES];
}

#pragma mark - Gamekit delegates
- (void)leaderboardViewControllerDidFinish:
(GKLeaderboardViewController *)viewController {
   [self dismissModalViewControllerAnimated:YES];
}
@end

Ausgabe

Wenn wir die Anwendung ausführen, erhalten wir die folgende Ausgabe:

Wenn wir auf "Rangliste anzeigen" klicken, wird ein Bildschirm angezeigt, der dem folgenden ähnelt:

Wenn wir auf "Punktzahl aktualisieren" klicken, wird die Punktzahl in unserer Rangliste aktualisiert und wir erhalten eine Benachrichtigung wie unten gezeigt -