Search code examples
cocos2d-iphonegame-center

Integrate Gamecenter in cocos2d game


Is there any one who knows how to integrate game center in Cocos2d. Please tell me steps so i can integrate that in my Game.


Solution

  • UPDATE:

    I created my own Helper Class that works with all kind of Apps (also Cocos2D 1 & 2+) https://github.com/alexblunck/ABGameKitHelper


    Hi I suggest you use GKHelper Class from Steffen Itterheim! I uploaded the GKHelper.h / GKHelper.m for you: http://www.cl.ly/7ReW

    Then follow these instructions:

    //0.0 Add GameKit Framework to Project (Ask If you don't know how to do this ;) )

    //0. Change "[window addSubview: viewController.view];" in the AppDelegate.m to: //Do this if you're using any release of cocos2D after 0.99.5:

    window.rootViewController = viewController;
    

    //1. Add Gamekithelper.h / .m to project

    //2. Include following delegate in given header:

    <GameKitHelperProtocol>
    

    //3. Add Delegate Methods to .m

    //4. Add GameKitHelper to "Scene":

    GameKitHelper *gkHelper = [GameKitHelper sharedGameKitHelper];
    gkHelper.delegate = self;
    [gkHelper authenticateLocalPlayer];
    

    //Adding score to leaderboard:

    GameKitHelper *gkHelper = [GameKitHelper sharedGameKitHelper];
    [gkHelper submitScore:scoreValue category:@"LeaderboardID"];
    

    //Adding achievement completion:

    GameKitHelper *gkHelper = [GameKitHelper sharedGameKitHelper];
    [gkHelper reportAchievementWithID:@"AchievementID" percentComplete:100];
    

    These are the delegate Methods that need to be added mentioned in Step #3:

    #pragma mark GameKitHelper delegate methods
    -(void) onLocalPlayerAuthenticationChanged
    {
        GKLocalPlayer* localPlayer = [GKLocalPlayer localPlayer];
        CCLOG(@"LocalPlayer isAuthenticated changed to: %@", localPlayer.authenticated ? @"YES" : @"NO");
    
        if (localPlayer.authenticated)
        {
            GameKitHelper* gkHelper = [GameKitHelper sharedGameKitHelper];
            [gkHelper getLocalPlayerFriends];
            //[gkHelper resetAchievements];
        }   
    }
    -(void) onFriendListReceived:(NSArray*)friends
    {
        CCLOG(@"onFriendListReceived: %@", [friends description]);
        GameKitHelper* gkHelper = [GameKitHelper sharedGameKitHelper];
        [gkHelper getPlayerInfo:friends];
    }
    -(void) onPlayerInfoReceived:(NSArray*)players
    {
        CCLOG(@"onPlayerInfoReceived: %@", [players description]);
    
    
    }
    -(void) onScoresSubmitted:(bool)success
    {
        CCLOG(@"onScoresSubmitted: %@", success ? @"YES" : @"NO");
    }
    -(void) onScoresReceived:(NSArray*)scores
    {
        CCLOG(@"onScoresReceived: %@", [scores description]);
        GameKitHelper* gkHelper = [GameKitHelper sharedGameKitHelper];
        [gkHelper showAchievements];
    }
    -(void) onAchievementReported:(GKAchievement*)achievement
    {
        CCLOG(@"onAchievementReported: %@", achievement);
    }
    -(void) onAchievementsLoaded:(NSDictionary*)achievements
    {
        CCLOG(@"onLocalPlayerAchievementsLoaded: %@", [achievements description]);
    }
    -(void) onResetAchievements:(bool)success
    {
        CCLOG(@"onResetAchievements: %@", success ? @"YES" : @"NO");
    }
    -(void) onLeaderboardViewDismissed
    {
        CCLOG(@"onLeaderboardViewDismissed");
    
        GameKitHelper* gkHelper = [GameKitHelper sharedGameKitHelper];
        [gkHelper retrieveTopTenAllTimeGlobalScores];
    }
    -(void) onAchievementsViewDismissed
    {
        CCLOG(@"onAchievementsViewDismissed");
    }
    -(void) onReceivedMatchmakingActivity:(NSInteger)activity
    {
        CCLOG(@"receivedMatchmakingActivity: %i", activity);
    }
    -(void) onMatchFound:(GKMatch*)match
    {
        CCLOG(@"onMatchFound: %@", match);
    }
    -(void) onPlayersAddedToMatch:(bool)success
    {
        CCLOG(@"onPlayersAddedToMatch: %@", success ? @"YES" : @"NO");
    }
    -(void) onMatchmakingViewDismissed
    {
        CCLOG(@"onMatchmakingViewDismissed");
    }
    -(void) onMatchmakingViewError
    {
        CCLOG(@"onMatchmakingViewError");
    }
    -(void) onPlayerConnected:(NSString*)playerID
    {
        CCLOG(@"onPlayerConnected: %@", playerID);
    }
    -(void) onPlayerDisconnected:(NSString*)playerID
    {
        CCLOG(@"onPlayerDisconnected: %@", playerID);
    }
    -(void) onStartMatch
    {
        CCLOG(@"onStartMatch");
    }
    -(void) onReceivedData:(NSData*)data fromPlayer:(NSString*)playerID
    {
        CCLOG(@"onReceivedData: %@ fromPlayer: %@", data, playerID);
    }