cocos2d-x 接入 GameCenter 排行榜与成就

本文详细介绍了如何在cocos2d-x lua环境下接入GameCenter的排行榜和成就系统,包括配置iTunes Connect、添加GameKit框架、lua调用Objective-C的方法,以及实现排行榜和成就的实践操作。通过对GameKitHelper类的创建和使用,实现了在AppDelegate中登录GameCenter,并提交数据到排行榜和更新成就状态。
摘要由CSDN通过智能技术生成

前言


要求接入GameCenter的排行榜和成就。

GameCenter 是苹果推出的一个社交平台,
它主要提供了以下几个功能:

  • 排行榜
  • 成就
  • 挑战

而且,苹果同时提供了GameKit框架来让GameCenter更易集成。

可能是因为GameCenter的热度过去了吧,相关的东西都比较早期。
整理总结了一下,希望对他人有所帮助。

我的环境:

mac - XCode 8.3 - cocos2d-x lua






公共的处理


1. 配置 iTunes Connect 排行榜与成就的位置。

登录iTunes Connect, 找到要处理的APP。
选择 功能->GameCenter
可以看到三个大项:
- 移动群组
- 排行榜
- 成就


2. 添加GameKit框架

打开项目工程,将 Capabilities 的 GameCenter 打开。
这样,XCode就会将GameKit框架加到我们的工程中。


3. 登录GameCenter

登录GameCenter: 【这个步骤在我们加载完游戏时进行即可】

    -(void) authenticateLocalPlayer {
        // 获取本地用户
        GKLocalPlayer* localPlayer = [GKLocalPlayer localPlayer];

        // 认证登录
        localPlayer.authenticateHandler = ^(UIViewController *viewController, NSError *error) {
            [self setLastError:error];

            if (localPlayer.authenticated) {                        // 本地用户已经登录
                _gameCenterFeaturesEnabled = YES;                   // 此变量是判断是否已经登录上GameCenter
            } else if(viewController) {                             // 没有用户,弹出登录界面
                [self presentViewController:viewController];        
            } else {                                                // 没有用户,并且没有登录界面
                _gameCenterFeaturesEnabled = NO;
            }
        };
    }


4. 关于lua调用object-c

因为我的环境是 cocos2d-x lua,所以,用通过lua来调用object-c。
cocos2d-x其实已经有相关的调用结构 —— LuaObjcBridge, 可以直接用 callStaticMethod来调用:

    LuaObjcBridge.callStaticMethod(methodName className,args)


5. GameKit辅助处理类

GameKitHelper.h:

    #import <GameKit/GameKit.h>
    #import "cocos2d.h"

    // 方便lua调用
    #include "CCLuaEngine.h"
    #include "CCLuaBridge.h"

    @interface GameKitHelper : NSObject
    // 处理错误
    @property (nonatomic, readonly) NSError* lastError;

    // 初始化
    + (id) sharedGameKitHelper;

    // Player authentication, inf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值