iOS - GameKit

Gamekit est un cadre qui fournit un tableau de bord, des réalisations et plus de fonctionnalités à une application iOS. Dans ce didacticiel, nous expliquerons les étapes de l'ajout d'un classement et de la mise à jour du score.

Étapes impliquées

Step 1 - Dans iTunes connect, assurez-vous que vous disposez d'un unique App ID et lorsque nous créons la mise à jour de l'application avec le bundle ID et la signature de code dans Xcode avec le profil d'approvisionnement correspondant.

Step 2- Créez une nouvelle application et mettez à jour les informations de l'application. Vous pouvez en savoir plus à ce sujet dans la documentation de nouvelles applications d'Apple.

Step 3 - Mettre en place un tableau des leaders dans Manage Game Center de la page de votre application où ajouter un seul classement et donner leaderboard IDet le type de score. Ici, nous donnons l'ID du tableau de bord sous forme de tutorielsPoint.

Step 4 - Les étapes suivantes sont liées à la gestion du code et à la création de l'interface utilisateur pour notre application.

Step 5 - Créer un single view application et entrez le bundle identifier est l'identifiant spécifié dans iTunes connect.

Step 6 - Mettez à jour ViewController.xib comme indiqué ci-dessous -

Step 7 - Sélectionnez votre fichier de projet, puis sélectionnez targets puis ajoutez GameKit.framework.

Step 8 - Créer IBActions pour les boutons que nous avons ajoutés.

Step 9 - Mettre à jour le ViewController.h fichier comme suit -

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

@interface ViewController : UIViewController
<GKLeaderboardViewControllerDelegate>

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

@end

Step 10 - Mettre à jour ViewController.m comme suit -

#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

Production

Lorsque nous exécutons l'application, nous obtenons la sortie suivante -

Lorsque nous cliquons sur "Afficher le tableau des leaders", nous obtenons un écran similaire au suivant -

Lorsque nous cliquons sur "mettre à jour le score", le score sera mis à jour dans notre tableau des leaders et nous recevrons une alerte comme indiqué ci-dessous -