2014年2月18日火曜日

Cocos2d-iphoneを使った際にGameCenterでクラッシュする問題について

Cocos2d-iphone 2.1 を使用しているアプリで、Game Centerを使って以下のフローを実施した際にクラッシュします。
  1. GKGameCenterViewController を表示(Leaderboardの表示)
  2. アプリをサスペンド状態にする
原因は Cococs2d-iphone のメインコントローラが CCDirector なので、Cocos2d-iphoneフレームワークの各所ではそれ前提で処理が記述されているから。
解決方法は以下のようになります。

AppController.m
-(void) applicationDidEnterBackground:(UIApplication*)application
{
    if([navController_ visibleViewController] == director_) {
        [director_ stopAnimation];
    } else {
        [navController_ dismissViewControllerAnimated:NO completion:nil];
        [director_ stopAnimation];
    }
}

0 件のコメント:

コメントを投稿