
参考書のメインコンテンツと思われるGame Center対応について学習した。
第6章のトピック
- Game Center概要、認証処理
- Leaderboardの組込み
- Achievementの組込み
- (Game Centerアプリだけでなく)自アプリでのLeaderboard・Achievementの表示
- 対戦機能の組込み
iTunes Connectで新規にアプリを登録した。管理画面にある”Manage Game Center”からLeaderboardとAchievementを作成することができるみたい。プロジェクト設定のBundle Identifierに、iOS Provisioning Portalで作ったApp IDを入れ、Required device capabilitiesに値(gamekit)を追加した。
コードは、Game Center処理専用のクラス(GameCenterSupport)を追加し、AppDelegateでGameCenterSupportのインスタンスを作り、applicationDidBecomeActiveで認証のメソッドをコールしている。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// ...
// Game Centerの処理を行うクラスのインスタンスを作成する
self.gcSupport = [[GameCenterSupport alloc] init];
return YES;
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
// ...
// Game Centerのアカウントを認証する
[self.gcSupport authenticatePlayer];
}
// プレイヤーの認証を行う
- (void)authenticatePlayer
{
// ローカルプレイヤーを取得する
GKLocalPlayer *player = [GKLocalPlayer localPlayer];
// 認証する
[player authenticateWithCompletionHandler:^(NSError *error) {
// 認証が成功したかチェックする
if (player.isAuthenticated) {
// 認証に成功したときの処理
// 識別子をチェックする
if (![player.playerID isEqualToString:self.playerID]) {
// サインインしているアカウントが変わった
[self localPlayerDidChange:player];
}
}
else {
// サインアウトされた
if (self.playerID) {
[self localPlayerDidChange:nil];
}
}
}];
}
iOSシミュレータで確認をしたのだが、当初、Game Centerのアカウント確認が表示されなかったので、一度シミュレータでアプリを削除してから再度実行すると表示された。Sandbox用にアカウントを作った。今回は認証処理(Chapter06-024)までやった。
参考サイト
- iPhoneソーシャルゲーム開発 書籍詳細|株式会社 C&R研究所
- Game Center のリーダーボード(スコアランキング)対応アプリの作り方 – Over&Out その後
- iOS Developer Library
“Game Kit プログラミングガイド”を参照した
iPhoneソーシャルゲーム開発
posted with amazlet at 12.07.12
林 晃
シーアンドアール研究所
売り上げランキング: 245996
シーアンドアール研究所
売り上げランキング: 245996
関連エントリー
