IOS ゲームキット


IOS GameKit


はじめに

GameKit は、iOS SDK で一般的に使用されるフレームワークです。

  • インタラクティブゲームプラットフォームGame Center、
  • P2Pデバイス通信機能
  • In-Game Voiceの3つのコア機能を備えています。

インスタンスの手順

1. iTunes にリンクするときは、必ず一意の App ID (一意の App ID) を持っていることを確認してください。App ID は、アプリケーションがバンドル ID を更新するときに使用されます。 Xcode ではコード署名と対応する設定ファイルが必要です。

2. 新しいアプリケーションを作成し、アプリケーション情報を更新します。詳細については、「新しいアプリケーションの追加」ドキュメントを参照してください。

3. 申請したアプリケーションを開き、「Manage Game Center」オプションをクリックします。入力後、「Enable Game Center」をクリックして Game Center を有効にします。次に、独自のリーダーボードと実績を設定します。

4. 次のステップでは、コードに取り組み、アプリケーションのユーザー インターフェイスを作成します。

5. シングル ビュー アプリケーションを作成し、バンドル識別子を入力します。

6. 以下に示すように ViewController.xib を更新します

gamekitInterface

7. プロジェクト ファイルを選択し、ターゲットを選択して GameKit.framework を追加します

8.追加されたボタンの IBActions を作成します

9.以下に示すように ViewController.h ファイルを更新します

#import <UIKit/UIKit.h>#import <GameKit/GameKit.h>@interface ViewController : UIViewController<GKLeaderboardViewControllerDelegate>-(IBAction)updateScore:(id)sender;-(IBAction)showLeaderBoard:(id)sender;@end

10.以下に示すように ViewController.m を更新します

#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

Output

アプリケーションを実行すると、出力結果は次のようになります。

gamekit_Output1

クリックしてリーダーボードを表示すると、画面は次のように表示されます。

gamekit_Output2

[スコアの更新] をクリックすると、スコアがランキングに更新され、以下に示すようなメッセージが表示されます

gamekit_Output3 #