-
定义
Apple的游戏社交平台
-
影响
可以看到GameCenter好友正在玩的游戏,提高曝光机会;排行榜被好友超越,会收到GameCenter的推送,可提高用户活跃度;另外还有可能会被App Store的推荐。
-
提供的功能
- 身份认证
- 排行榜
- 成就
- 多人游戏
- 好友系统
-
框架
玩家限制类型:
- isUnderage(低于年龄要求)
- isMultiplayerGamingRestricted(禁止多人游戏)
- isPersonalizedCommunicationRestricted(禁止交流)
以上属性都是由Game Center自动设置,基于用户的年龄和国家/地区的法律规定来确定用户是否有权限,我们需要根据上面的授权情况对游戏内容进行调整
GKLocalPlayer 和 GKPlayer的区别
GKLocalPlayer 是一个系统单例,保存当前玩家的信息,不可自己创建
GKPlayer 是用户的信息数据的model,可以自己创建,会话的用户信息也是通过GKPlay封装
-
仪表盘(Dashboard)
作用:
提供了统一的、一站式的UI,可以快捷地访问玩家的资料、排行榜、成就、挑战和好友列表。如:
实现:
使用GKGameCenterViewController类
typedef NS_ENUM(NSInteger, GKGameCenterViewControllerState) {
GKGameCenterViewControllerStateDefault = -1,
GKGameCenterViewControllerStateLeaderboards, //排行榜
GKGameCenterViewControllerStateAchievements, //成就
GKGameCenterViewControllerStateChallenges, //挑战
GKGameCenterViewControllerStateLocalPlayerProfile, //用户信息
GKGameCenterViewControllerStateDashboard, //用户在GameCenter上全部的信息
GKGameCenterViewControllerStateLocalPlayerFriendsList //好友列表
};
-
访问点
作用:
可作为游戏中进入用户信息页面的一个入口
实现:
使用GKAccessPoint类(是个单例),指定位置(只能指定四个角的位置),是否高亮、是否激活显示
GKAccessPoint *accessPoint = [GKAccessPoint sharedAccessPoint];
accessPoint.location = GKAccessPointLocationBottomLeading;
accessPoint.showHighlights = YES;
accessPoint.isActive = YES;
-
好友
作用:
-
排行榜
-
成就
-
挑战
-
多人游戏
-
好友资料(可以在游戏里显示一些好友信息,如果头像,昵称等)
注意:游戏获取GameCenter好友列表,需要获取授权,Info.plist上面需要写说明
if ([GKLocalPlayer localPlayer].isAuthenticated) {
[[GKLocalPlayer localPlayer] loadFriendsWithCompletionHandler:^(NSArray *friends, NSError *error) {
if (error != nil) {
NSLog(@"获取好友列表失败:%@", [error localizedDescription]);
} else {
NSLog(@"已获取好友列表");
for (GKPlayer *friend in friends) {
NSLog(@"%@", friend.alias ?: @"未知");
}
}
}];
}
-
排行榜
类型:
-
经典排行榜
- 一个累计行榜,数据是持久化的
-
循环排行榜
- 重复出现的短时间的排行榜,适合周期性的活动
- 一个时间周期之后,玩家可以回到同一起跑线重新开始争夺排名
- 注意:
-
- 配置循环排行榜时,为了保证同一个活动之间不会有重叠,活动的重启周期不能短于其时限。正确配置如:
-
-
历史查询:
-
经典排行榜:指定id,时间,地区即可
-
循环排行榜:活动事件在过期之后还可以保存30天,本地玩家只能访问当前和上一个事件(每个用户最多只能看到两个循环排行榜)
-
-
- 排行榜类型:
-
- Gamekit默认UI
- 自定义UI(自己拉取排行榜数据)
-
成就
四种状态:
-
多人游戏
作用: 提供游戏开始时的好友匹配,邀请玩家的便捷功能
匹配游戏类型:
-
即时制(搜索玩家,建立连接,发送数据)
- 格斗/赛车/动作游戏
-
回合制(搜索玩家,建立连接,发送数据,回合管理,结合iCloud进行保存数据)
- 扑克/桌面游戏
- GKTurnBasedMatch:这是一个代表 GameCenter 多人游戏匹配的类,可以用来管理游戏回合。它提供了开始游戏、轮流操作、结束游戏等方法,同时还可以获取玩家信息、游戏状态等信息。
- GKTurnBasedEventHandler:这是一个 GameCenter 事件处理程序,用于处理与 GKTurnBasedMatch 相关的事件,例如玩家加入或退出游戏、玩家回合结束等。在事件发生时,可以使用该接口的方法进行相应的处理。
- 扑克/桌面游戏
-
自建服务器(提供玩家列表)
- MOBA/荒野求生
-