game center游戏存档所支持的所有游戏

手机游戏正文
详解iOS平台 Game Center苹果游戏中心教程
目前在iOS 4.1版本以上的苹果设备中已经添加了Game Center(苹果游戏中心)。
iOS 4.1中新增Game Center游戏中心
Game Center(苹果游戏中心)是专为游戏玩家设计的社交网络平台,类似于iTunes中专为歌迷设计的Ping,从核心功能上看基本等同于微软的Xbox Live,当然它仅对IOS用户群。Game Center简化了兼容游戏中多人对战的配对,另外它不但可以通过成就系统,同时也可以通过积分榜为玩家提供炫耀的资本。借助Game Center,用户可以收发好友请求,可以邀请好友通过互联网参与多人游戏。除此之外,系统还可以自动为用户寻找游戏玩伴。用户可以在Game Center中看到游戏中的玩家排名和成绩,并且可以借助好友推荐来寻找新游戏。当用户下载升级到iOS 4.1或者更高版本后,Game Center应用就会出现在主屏上。可以使用苹果的账号登录,然后创建一个昵称,可以添加一个电子邮件地址,以便与好友联系。当用户登录一个已有的苹果账号或者注册一个新账号时,载有服务条款的界面即会呈现给用户。此时使用者可新建一个独一无二的Game Center账号,而昵称和其他一些信息则用于接收其他玩家向你发出的好友邀请,当然其他游戏玩家也可以通过电子邮件来查找你。除此之外,只需在Game Center中点击相应的链接即可下载游戏。
除游戏功能之外,在"我"的个人主页,用户可以了解好友、游戏以及成就(类似游戏积分)等信息,或者设置个人状态信息。好友栏让使用者可在游戏中心找到其他参与者,从而发出交友邀请,当然陌生人也将出现在一个列表中,邀请项目可在第三栏中进行设置。在玩家排名中,用户还可以看到自己与好友的排名信息。不仅可以相互比较,还能够直接聊天。
早上GameCenter发布之初,开发商们纷纷将自己的游戏更新到iOS 4.1,以支持Game Center的功能。
Game Center详细演示视频:
没有相关新闻
跟贴读取中...
跟贴昵称修改后,论坛昵称也会变哦
复制成功,按CTRL+V发送给好友、论坛或博客。
浏览器限制,请复制链接和标题给好友、论坛或博客。
游戏评分:8.6
发售日期:
推荐理由:惊悚的冒险解谜游戏,该如何逃脱?游戏代入感极强,丝毫不给人喘息放松的机会。
游戏评分:7.7
更新日期:
推荐理由:一款小清新的飞行射击类游戏。艾米是一名精通射术的天使,受命去消灭调皮捣蛋的小恶魔,建议游戏时戴上耳机哦~
本月评分排行
1.0G| ¥128.0
¥128.0混沌之戒Ⅲ(角色扮演)
62.5M| 免费
免费猫和老鼠官方手游(跑酷游戏)
70.0M| 免费
免费MOBIUS最终幻想(角色扮演)
414.0M| ¥18.0
¥18.0神偷鲍勃2:双重麻烦(休闲益智)
573.0M| ¥12.0
¥12.0英雄城堡2(角色扮演)
91.0M| 免费
免费终结者创世纪:革命(射击游戏)
273.0M| ¥30.0
¥30.0杀手:狙击手(射击游戏)
92.0M| $4.99
$4.99几何战争3:维度(射击游戏)
348.0M| ¥30.0
¥30.0每人心中都有一只怪兽(角色扮演)
21.0M| ¥30.0
¥30.0商业发展豪华版(模拟经营)
33.41M| 免费
免费猫和老鼠官方手游(跑酷游戏)
动作角色扮演
20.10M| 免费
免费MOBIUS最终幻想(动作角色扮演)
648.88M| 免费
免费直到晨曦来临(冒险解谜)
16.4M| 免费
免费森林之神(角色扮演)
动作角色扮演
17.6M| 免费
免费怒血回忆(动作角色扮演)
19.12M| 免费
免费杀手:狙击手(射击游戏)
25.7M| 免费
免费贪吃蛇(休闲益智)
44.17M| 免费
免费艾米星星射手(飞行射击)
23.40M| 免费
免费炫光动感(音乐游戏)
23.50M| 免费
免费生长的阶梯(休闲益智)
辻本春弘认为,游戏会和其他网络服务结合,诞生新商业模式。[]
谷歌公司产品高级副总裁皮查伊明确表达了对中国市场的兴趣。[]
GungHo社长表示,和任天堂的合作不会对手游开发产生影响。[]主题 : 求助,关于GameCenter的playerID
级别: 新手上路
可可豆: 33 CB
威望: 31 点
在线时间: 29(时)
发自: Web Page
来源于&&分类
求助,关于GameCenter的playerID&&&
对于不同的应用,同一个GameCenter帐号获取到的playerID是相同的,如果游戏服务器单纯的使用playID作为玩家登录的凭证,一旦玩家的playerID泄漏,就会有被*****的风险,请问大家的游戏中是怎么处理GameCenter帐号的?
级别: 新手上路
可可豆: 33 CB
威望: 31 点
在线时间: 29(时)
发自: Web Page
找到方法了
级别: 侠客
可可豆: 335 CB
威望: 335 点
在线时间: 485(时)
发自: Web Page
请问R如何解决?
级别: 新手上路
可可豆: 33 CB
威望: 31 点
在线时间: 29(时)
发自: Web Page
回 2楼(xuweiping) 的帖子
其实也没有彻底解决,IOS7的GKLocalPlayer提供了一个方法可以验*****br />- (void)generateIdentityVerificationSignatureWithCompletionHandler:(void (^)(NSURL *publicKeyUrl, NSData *signature, NSData *salt, uint64_t timestamp, NSError *error))completionHandler低版本的IOS还没有什么方法可以直接解决,估计只能自行管理用户注册了
本帖最近评分记录: 共1条评分记录
级别: 侠客
可可豆: 335 CB
威望: 335 点
在线时间: 485(时)
发自: Web Page
回 3楼(pcboylee) 的帖子
多谢楼主,
关注本帖(如果有新回复会站内信通知您)
苹果公司现任CEO是谁?2字 正确***:库克
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版酷勤网 – 程序员的那点事!
当前位置: >
浏览次数:次
本文将引导你使用Cocos2D和Game Center配对系统来制作简单的双人联网游戏。
你将要制作的游戏非常简单。游戏的内容是一条狗和一个小孩赛跑,点击屏幕的速度越快,玩家获胜的可能性就越高。
教程的假设前提是你已经对Cocos2D的基本使用方法较为熟悉。如果你是Cocos2D新手,或许需要先看看站点上的其他Cocos2D相关教程。
注:如若要完全学习该教程中的内容,你必须是iOS开发计划的注册会员,这样你的应用才能够使用Game Center。而且,你至少需要1部设备(游戏邦注:以满足在模拟器和设备上各运行游戏的条件)。最后,你还需要至少两个不同的Game Center账户,用于测试游戏(游戏邦注:开发者可以免费用新邮箱注册新Game Center账户)。
本教程向你展示如何将配对系统和多人联网模式添加到游戏中。
我已经准备好了某些初始代码供初学者使用,但是这些代码中不含有联网代码。
下载这些代码并运行项目,你应该可以看到以下画面:
active(from raywenderlich)
游戏非常简单,获得的评论也不错。浏览这些代码,确保你能够理解其中的所有内容。
激活Game Center:概述
现在,你已经拥有了个简单且可以玩的游戏。但是游戏显得很乏味,因为你只能自己独自体验!
如果能够使用Game Center的话,游戏会更加有趣,因为你可以邀请好友跟你一起玩,或者使用配对系统寻找在线陌生人。
但是在你开始编写有关Game Center的代码前,你需要做两件事情:
1、创建并设置应用ID
2、在iTunes Connect中注册应用
让我们来分别阐述这两件事情。
创建并设置应用ID
首个步骤是创建并设置应用ID。要实现这个目标,需要先登录iOS Dev Center,随后登录iOS Provisioning Portal。
在其中选择应用ID标签,为你的应用新建应用ID,如下所示:
creat App ID(from raywenderlich)
最重要的部分是Bundle Identifier,你需要将此设置为独立的串(游戏邦注:应当与教程中所示不同!)使用你所持有的域名是个较好的选择,可以避免串名称的重合。
完成后,点击&提交&。然后打开Cat Race Xcode项目,选择ResourcesInfo.plist,将Bundle Identifier设置成你在iOS Provisioning Portal中输入的内容,如下图所示:
value(from raywenderlich)
当你在项目中期修改Bundle Identifier时,有时可能会导致Xcode出现异常,所以需要采取以下步骤:
1、删除当前位于模拟器或设备上的Cat Race游戏副本
2、如果模拟器正在运行中,退出模拟器
3、用ProjectClean清除记录
现在,你的应用已经有了应用ID。接下来,你就可以为应用注册iTunes Connect和激活Game Center。
在iTunes Connect中注册应用
下个步骤是登录iTunes Connect并为应用创建新入口。
登录iTunes Connect后,选择&管理你的应用&,然后点击左上方蓝色的&添加新应用&选项。
在你看到的首个界面中,&应用名称&栏中输入&Cat Race&,&SKU数字&栏输入&CR1&,选择你之前创建的束ID,如下图所示:
App Name(from raywenderlich)
点击继续,接下来要为你的应用设置某些基本信息。
不要担心自己输入的数值,因为你随后可以对其进行修改,你需要的找些东西(游戏邦注:包括图标和截图)来满足iTunes Connect提出的要求。
完成后,点击&保存&,不出意外的话你应该会进入&准备上传&阶段,看到如下内容:
App Information(from raywenderlich)
点击右上方蓝色的&管理Game Center&选项,点击蓝色的&激活&选项,点击&完成&。这样你的应用便已经激活了Game Center,你可以编写代码了!
认证本地玩家:策略
游戏设计开始后,首先你需要做的就是认证本地玩家。
你可以将此视为&玩家登陆Game Center&。如果他之前已经登录过,会看到&欢迎回来!&的界面。如果从未登录,系统会要求输入玩家姓名和密码。
认证当地的用户很简单,你只需要调用authenticateWithCompletionHandler即可。你可以随意添加一段代码,一旦用户认证就会被调用。
但是,用户还可以用另一种方法登入或登出!他可以在使用你的应用的时候转向Game Center应用,在那里登入或登出,然后转回你的应用。
所以你的应用需要知道认证状态改变的时间,通过注册&认证改变&通知可以实现这个目标。
所以,我们采用的认证玩家的战略如下:
1、创建单例对象,将所有的Game Center代码放在同一个地方。
2、单例对象创建后,用其注册&认证改变&通知。
3、游戏会调用单例对象上的方法来认证用户。
4、无论用户何时认证或登出,&认证改变&回叫信号都将被调用。
5、回叫信号将跟踪用户当前是否处在认证状态。
现在你已经知道了这个计划,接下来我们将具体实施!
认证本地用户:执行
在Cat Race Xcode项目中,选择FileNewNew File,随后选择iOSCocoa TouchObjective-C class,然后点击&下一步&。在&Subclass&中输入&NSObject&,点击&下一步&,将新类命名为GCHelper.m,然后点击&完成&。
将GCHelper.h替换为以下内容:
reaplace GCHelper.h(from raywenderlich)
这样做便导入了GameKit标题文件,然后创建了有着两种数据类型的对象,一个用来跟踪游戏中心在这款设备上是否可用,另一个用来跟踪用户当前是否处于认证状态。
它还创建出某个资产,这样游戏就可以区分出游戏中心是否可用。一个静态方法可以找回该类的单例实例,另一个方法可以认证当地用户(游戏邦注:在应用开启时调用)。
接下来转向GCHelper.m,然后在@implementation中添加以下内容:
switch to GCHelper.m(from raywenderlich)
这样便形成了gameCenterAvailable资产,然后定义方法创建此类的单例实例。
应当注意的是,编写单例方法的方法有许多种,但是这是最简单的方法,因为你无需担心多线路尝试同时初始化单例。
接下来在sharedInstance方法之后添加以下方法:
add the method(from raywenderlich)
这种方法来源于苹果的Game Kit Programming Guide。可以查看Game Kit在当前设备上是否可用。
然后再isGameCenterAvailable方法之后添加如下内容:
add the methold after isGameCenterAvailable(from raywenderlich)
初始方法查验的是Game Center是否可用,如果确实可用,便注册&认证改变&通知。应用在尝试认证用户之前注册此等通知很重要,这样在认证完成时才会被调用。
此刻的authenticationChanged回叫信号很简单,它查验的是改变是否源于用户认证或非认证,并据此更新状态旗帜。
应当注意的是,在实践中认证或非认证时,这可能会在一行中被调用数次,因而应当确保userAuthenticated旗帜与当前状态不同,它只在发生改变时登录。
最后,在authenticationChanged方法后添加以下方法来认证当地用户:
add the method after authenticationChanged(from raywenderlich)
这会调用之前提到的authenticateWithCompletionHandler方法来告诉Game Kit认证用户。应当注意的是,这并未通过完成处理器。因为你已经注册了&认证改变&通知,所以上述步骤就不必要了。
GCHelper现在包含了所有认证用户的必要代码,现在你要做的就是使用它!转向AppDelegate.m,进行以下修改:
switch to AppDelegate.m(from raywenderlich)
这样便创建了单例实例(游戏邦注:注册&认证改变&回叫信号成为初始化的一部分),然后调用authenticateLocalUser方法。
最后的步骤将Game Kit架构添加到项目中。要实现这个目标,选择Groups & Files左上角的CatRace项目,选择Build Phases标签,展开&Link Binary with Libraries&选项,然后点击&+&。
选择GameKit.framework,然后点击&添加&。将类型从&必须&改为&可选&,现在你应该可以看到如下屏幕:
change the type to Optional(from raywenderlich)
这就是我们的目标!执行并运行项目,如果你已经登录Game Center,应该可以看到以下内容:
welcome back(from raywenderlich)
现在你已经认证了用户,可以转向有趣的部分,比如找些人跟你一起玩游戏!
目前有两种方法可以通过Game Center来找到其他人与你一起玩游戏:搜索配对或者使用内置配对用户界面。
在这个教程中,我们将使用的是内置配对用户界面。这个想法是,当你想要寻找配对时,你在GKMatchRequest对象中设置了某些参数,然后创建和呈现GKMatchmakerViewController实例。
现在让我们看看这是如何发挥作用的。首先,对GCHelper.h进行些许修改,如下所示:
a few changes to GCHelper.h(from raywenderlich)
这里有许多新东西,所以我们将具体解析。
1、我们定义了一个称为GCHelperDelegate的协议,用来在重要事件发生时通知其他对象,比如配对开始、结束或者从其他人处接收数据。在这款游戏中,你的Cocos2D层将执行这个协议。
2、GCHelper对象被标识为执行两个协议。第一个是配对用户界面可以在配对是否成功时通知该对象。第二个是Game Center可以在数据接收或者连接状态改变时通知对象。
3、创建某些新实例变量和资产,以此来跟踪用来呈现配对用户界面、配对参考、是否成功的视图控制器。
4、创建Cococs2D曾能够调用来寻找配对玩家的新方法。
接下来转向GCHelper.m并做出以下修改:
switch to GCHelper.m and make changes(from raywenderlich)
这个方法是供Cocos2D曾调用来寻找配对。如果Game Center不可用的话,这个方法丝毫不起作用。
初始方法设定配对还未开始,配对对象为0。它存储了视图控制器以供后用,解除了之前已经存在的视图控制器(游戏邦注:比如正在呈现的GKMatchmakerViewController)。
然后转向重要的内容。GKMatchRequest对象允许你配置你正在寻找的配对类型,比如玩家数量的最小值和最大值。在这款游戏中,我们设定最小和最大均为2个玩家。
接下来,它用指定请求创建了GKMatchmakerViewController新实例,将其委任设置给GCHelper对象,并使用视图控制器将其呈现在屏幕上。
GKMatchmakerViewController从此时起便可发挥作用,允许用户随机搜索玩家并创建游戏。目前实现后将调用某些回叫方法,因此我们需添加以下内容:
GKMatchmakerViewController(from raywendelich)
如果用户取消配对或配对出现错误,配对视图就会关闭。
但是,如果配对被找到,它就会离开配对对象,将配对委任发送给GCHelper对象,这样它就能够知晓输入数据和连接状态改变。
它还运行了一次快速检测,查看开始配对的时机是否恰当。配对对象会跟踪仍需要完成配对的玩家数量。如果这个数量是0的话,表示所有的玩家均已配对成功。
接下来,添加GKMatchDelegate回叫执行:
GKMatchDelegate callbacks (from raywenderlich)
match:didReceiveData:fromPlayer会在其他玩家向你发送数据时调用。这个方法只是简单地将数据向委任推送,这样就可以执行游戏中具体的内容。
match:player:didChangState方法的作用时,当玩家连接时你需要确认是否所有的玩家均已就位,如若准备完好就可以开始比赛。假如有玩家掉线,它就会将比赛中止并通知委任。
最后两个方法是在连接发生错误时调用。在这两种方法中,如果发生错误,它们都会中止比赛并通知委任。
现在我们拥有可以配对出比赛的代码,我们将其用在HelloWorldLayer中。转向HelloWorldLayer.h并进行如下改变:
switch to HelloWorldLayer.h(from raywenderlich)
然后转向HelloWorldLayer.m,做出如下改变:
switch to HelloWorldLayer.m and make the following changes(from raywenderlich)
这里最重要的部分便是初始方法。它从AppDelegate处获得RootViewController,因为那是呈现配对情况的视图控制器。然后,它会调用你刚刚在GCHelper上编写的新方法,通过呈现配对视图控制器的方式来寻找比赛。
剩下的只是些随后将执行的比赛开始或结束时的小功能。
最后要说明的是,默认的Cocos2D模板并不包含供App Delegate中RootViewController使用的资产,所以你可以添加一个。转向AppDelegate.h然后添加以下内容:
@property (nonatomic, retain) RootViewController *viewC
然后转向AppDelegate.m将其合成:
@synthesize viewC
执行并运行应用,你应当可以看到配对视图控制器初始页面,如下图所示:
matchmaker view controller(from raywenderlich)
现在在另一个设备上运行应用,这样你就会看到两个应用同时运行(游戏邦注:可以用模拟器和iPhone作为两个不同的设备)。
重要的是,确保你在两个设备上使用的是不同的Game Center账户,否则无法看到效果!
在两个设备上点击&开始游戏&,过一小段时间后,配对视图控制器应当会消失,你应该会在看到如下内容:
CatRace[] Authentication changed: player authenticated.
CatRace[] Player connected!
CatRace[] Ready to start match!
这就表示你已经构建起两个设备间的比赛!你马上就可以制作出联网游戏!
横向和GKMatchmakerViewController
你或许已经注意到,默认情况下GKMatchmakerViewController会纵向显示。很显然,这看起来很不舒服,因为这款Cocos2D游戏是横向的!
幸运的是,你可以通过补丁来强迫GKMatchmakerViewController只接受横向。
为实现这个目标,点击FileNewNew File,选择iOSCocoa TouchObjective-C class,然后点击&下一步&。在Subclass中输入NSObject,点击&下一步&,将新类命名为&GKMatchmakerViewController-LandscapeOnly.m&,然后点击&完成&。
将GKMatchmakerViewController-LandscapeOnly.h的内容用以下内容替换:
Replace-the-contents-of-GKMatchmakerViewController-LandscapeOnly.h(from raywenderlich)
然后将GKMatchmakerViewController-LandscapeOnly.m的内容替换如下:
replace the contents of GKMatchmakerViewController-LandscapeOnly.m
执行并运行应用,视图控制器应当会横向呈现,如下图所示:
view controller(from raywenderlich)
游戏邦注:本文发稿于日,所涉时间、事件和数据均以此为准。
& 相关主题:
本文来源:IOS平台游戏如何对接GameCenter
现在随着手游市场的不断扩大,活跃在IOS平台下的游戏厂商为了增加玩家的粘性,以及为自己的游戏前途考虑都纷纷开始接入苹果国内公司的游戏平台GameC今天呢我就把我对接GameCenter的一些心得以及操作分享给大家,内容很简单也希望在这方面有经验的也可以跟我分享一下。
1.itunesConnect配置:
打开ItunesConnect,选中你的应用,在自己的应用页面上面找到GameCenter选项,如图:
点击打开GameCenter显示如图效果:
apple GameCenter分为两块:&排行榜&与&成就&。首先我们先来添加排行榜:
添加成就:
每个应用的成就点数最多为1000点,属性Hidden(隐藏),如果将其设置为YES,则在用户获得成就或取得一定进展前,成就是不可见的。
如果要让用户能够接受基于已获得的成就的挑战,则需在iTunes Connect中创建成就时选中复选框&可多次获得&。
每个成就需要配置本地化描述;每个成就都有两个描述,一个在用户获得成就前显示,另一个在用户获得成就后显示。另外还需要给每个成就提供已付图像,尺寸为512X512,(应用发布后就不能删除其中的成就)
分别编辑完排行榜与成就后,最终在ItunesConnect中的效果:
对于开发者来说,GameCenter必须经过测试才能上线,没有上线的程序在测试环境中登录时会出现sandBox提示。
好了,itunesConnect部分的基本配置就介绍完了,是不是很简单。下面我们来讲一下程序部分~
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apple为大家接入GameCenter提供了GameKit.framework,在需要使用GameCenter的类中都要导入GameKit.h;在.***件中加入协议&GKGameCenterControllerDelegate&.
1.游戏中心管理器
创建共享的游戏管理器,不仅可以将GameCenter功能放在独立的类中,还可以轻松的在新项目中添加GameCenter功能。
判断是否支持GameCenter:
//是否支持GameCenter
- (BOOL) isGameCenterAvailable
Class gcClass = (NSClassFromString(@&GKLocalPlayer&));
NSString *reqSysVer = @&4.1&;
NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
BOOL osVersionSupported = ([currSysVer compare:reqSysVer options:NSNumericSearch] != NSOrderedAscending);
return (gcClass && osVersionSupported);
2,身份验证
GameCenter是一种需要验证身份的服务,如果没有登录就得先验证身份,否则什么也做不了。
//身份验证
- (void)authenticateLocalUser{
GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
localPlayer.authenticateHandler = ^(UIViewController *viewController, NSError *error){
if (viewController != nil) {
[self presentViewController:viewController animated:YES completion:nil];
if ([GKLocalPlayer localPlayer].authenticated) {
// Get the default leaderboard identifier.
[[GKLocalPlayer localPlayer] loadDefaultLeaderboardIdentifierWithCompletionHandler:^(NSString *leaderboardIdentifier, NSError *error) {
if (error != nil) {
NSLog(@&%@&, [error localizedDescription]);
3.用户变更检测
//用户变更检测
- (void)registerFoeAuthenticationNotification{
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self selector:@selector(authenticationChanged) name:GKPlayerAuthenticationDidChangeNotificationName object:nil];
- (void)authenticationChanged{
if([GKLocalPlayer localPlayer].isAuthenticated){
4.提交得分
向GameCenter验证身份后,便可提交得分了。
创建GKStore对象:
- (void) reportScore: (int64_t) score forCategory: (NSString*) category{
GKScore *scoreReporter = [[GKScore alloc] initWithCategory:category];
scoreReporter.value =
[scoreReporter reportScoreWithCompletionHandler:^(NSError *error) {
if(error != nil){
NSData *saveSocreData = [NSKeyedArchiver archivedDataWithRootObject:scoreReporter];
//未能提交得分,需要保存下来后继续提交
[self storeScoreForLater:saveSocreData];
NSLog(@&提交成功&);
- (void)storeScoreForLater:(NSData *)scoreData{
NSMutableArray *savedScoresArray = [[NSMutableArray alloc] initWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@&savedScores&]];
[savedScoresArray addObject:scoreData];
[[NSUserDefaults standardUserDefaults] setObject:savedScoresArray forKey:@&savedScores&];
若得分提交不成功,需要再重新提交得分:
//重新提交分数
- (void)submitAllSavedScores{
NSMutableArray *savedScoreArray = [[NSMutableArray alloc] initWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@&savedScores&]];
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@&savedScores&];
for(NSData *scoreData in savedScoreArray){
GKScore *scoreReporter = [NSKeyedUnarchiver unarchiveObjectWithData:scoreData];
[scoreReporter reportScoreWithCompletionHandler:^(NSError *error) {
if(error != nil){
NSData *saveSocreData = [NSKeyedArchiver archivedDataWithRootObject:scoreReporter];
//未能提交得分,需要保存下来后继续提交
[self storeScoreForLater:saveSocreData];
NSLog(@&提交成功&);
5.显示排行榜
创建GKLocalboardViewController来显示排行榜.
- (void)showGameCenter{
GKGameCenterViewController *gameView = [[GKGameCenterViewController alloc] init];
if(gameView != nil){
gameView.gameCenterDelegate =
[gameView setLeaderboardCategory:@&com.xxxx.test&];
[gameView setLeaderboardTimeScope:GKLeaderboardTimeScopeAllTime];
[self presentViewController:gameView animated:YES completion:^{
- (void)gameCenterViewControllerDidFinish:(GKGameCenterViewController *)gameCenterViewController{
[self dismissViewControllerAnimated:YES completion:nil];
6.得分成就
挑战让用户可以通过GameCenter向玩家发起得分或成就方面的挑战。挑战分为四种:&无效&,&待处理&,&已结束&,&已谢绝&。
- (void)reportAchievment:(NSString *)identifier withPercentageComplete:(double)percentComplete{
GKAchievement *achievement = [[GKAchievement alloc] initWithIdentifier:identifier];
[achievement setPercentComplete:percentComplete];
[achievement reportAchievementWithCompletionHandler:^(NSError *error) {
if(error != nil){
NSLog(@&error:%@&, [error localizedDescription]);
NSLog(@&提交成就成功&);
示例演示:
1.在sandbox环境中登录GameCenter
登录成功以后会在上方显示一个横幅&Welcome....&,点击GameCenter app就会显示您以及您游戏的相关信息.
3.排行榜界面
成就的图标为在后台配置的图标;
5.添加好友
点击右上角的&加号&按钮,会弹出一个添加好友的界面,输入对方AppleID即可给对方发送好友请求。
6.发起挑战
对方收到挑战信息推送界面
好了,gameCenter的接入到这边就告一段落了,若在开发中有新的发现我会及时跟新这篇文章,欢迎大家评论分享自己的看法。
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'

参考资料

 

随机推荐