在我们的iOS游戏中,我们使用GameCenter来识别玩家并使用我们自己的服务器跨设备同步他们的数据。因为GameCenter识别玩家,我们需要知道他们是否经过身份验证,或者他们是否更改了身份验证等。我们有一个标题屏幕显示“正在初始化GameCenter...”,直到身份验证调用返回,并且只有一次我们知道他们被认证为谁(如果有的话)我们是否进入游戏。但是,在极少数情况下(事实上,我自己无法重现),永远不会调用身份验证处理程序。甚至在等待几分钟之后。GameCenter欢迎横幅也从不显示,所以这不仅仅是我们的处理程序从未被调用,而是似乎确实没有身份验证状态。到目前为止,我们已经实现了3
我正在开发一个有很多成就的应用程序。出于可读性原因,GameCenter中显示成就的顺序有些相关。随着应用程序的新版本可用,我正在添加新的成就。现在,改变成就顺序的标准方法是在iTunesConnect界面中拖动它们,如thisanswer。建议。然而,作为thisotherquestion指出,这并不总是有效,如果您尝试,您会收到类似“无法更新排序顺序。请重试。”的消息(我从未成功过)。提到的问题因为是关于“通用计算硬件和软件”的问题而被关闭。那么,让我从编程的角度重新表述一下这个问题:是否有任何编程方式更改顺序在GameCenter中成就显示的顺序,或者,应用上线后,是否根本无法更
我读到GameCenter排行榜分数是onlyupdatedwhenthenewlypostedscoreisgreater比现有的分数。这让我想知道是否有可能拥有一个GameCenter排行榜来存储倒计时的分数,例如“完成关卡的时间”。这仍然可以通过正确设置排行榜来实现,例如使用排序和格式修改器吗?确认一下,是否真的不可能让GameCenterLeaderboard简单地接受您发送给它的值,无论它是更大还是更小? 最佳答案 您可以在iTunesConnect中选择从低到高或从高到低的排行榜类型。而且您始终可以向GameCenter
我正在开发一个有两个GameCenter玩家的回合制游戏,我想允许自动匹配。我读到过,要将邀请真正发送给玩家,邀请玩家必须结束他/她的回合。这意味着调用此方法:-(void)endTurnWithNextParticipants:(NSArray*)nextParticipantsturnTimeout:(NSTimeInterval)timeoutmatchData:(NSData*)matchDatacompletionHandler:(void(^)(NSError*error))completionHandler现在,我不明白的是“nextParticipants”数组的含义,
是否有内置方式向用户显示他们已获得GameCenter成就的通知?类似于他们通过身份验证时出现的通知?当我完成成就并且没有在我的游戏中看到通知时,我感到很惊讶。谢谢! 最佳答案 在iOS5.0+中你可以使用[GKNotificationbannershowBannerWithTitle:@"Title"message:@"Message"completionHandler:nil]; 关于iphone-如何显示GameCenter成就通知,我们在StackOverflow上找到一个类似的
根据Appledocs我们应该做这样的事情来处理GC身份验证:-(void)authenticateLocalUser{GKLocalPlayer*localPlayer=[GKLocalPlayerlocalPlayer];if(localPlayer.authenticated==NO){[localPlayersetAuthenticateHandler:(^(UIViewController*viewcontroller,NSError*error){if(!error&&viewcontroller){DLog(@"Needtologin");AppDelegate*appD
我正在努力度过让GameCenter集成发挥作用的第一阶段。我已经走到这一步了:我创建了一个干净的新应用,在应用委托(delegate)中添加了GameKitheader和基本的authenticateWithCompletionHandler:方法。在模拟器中启动应用程序会弹出登录对话框。如果我通过登录对话框创建一个新帐户,那么该用户将通过身份验证并成功加载应用。如果我再次尝试使用该帐户登录,或者使用我通过模拟器的GameCenter应用程序创建的帐户,登录将被拒绝并显示“GameCenter无法识别此游戏”错误。重置模拟器并通过XCode重新安装没有效果。该应用程序已通过iTune
看完developerdocs在各种论坛上搜索了好几个小时,我似乎找不到有关如何完成此操作的信息。基本上,我有一堆数据保存在本地,这些数据构成了玩家游戏的当前状态。我见过其他游戏,例如TinyTower、PocketPlanes和Smurf'svillage实际上在GameCenter中备份了该数据。我的目标是让玩家能够从他们friend的游戏中加载数据,这样他们就可以看到事情的进展情况。例如,在TinyTower中,我可以查看我friend的塔并向他/她发送礼物。同样在蓝Sprite村。我知道我可以使用我自己的服务器使用登录名/密码来执行此操作,但如果它可以通过GameCenter运
我正在通过gamecenter实现一款多人模式的回合制游戏。我有2台设备(1台ipad,1台iphone)在沙盒模式下进行测试,它们运行良好,但最近它开始在自动配对过程中遇到困难。在我从一个用户发送第一个回合后,另一台设备不会立即识别出该游戏,而是打开自己的新游戏。在它能够立即发现游戏在另一台设备上开始之前,配对就相当简单了。我不记得更改了与配对相关的任何部分(NSCoding、GKTurnBasedEventHandler、GKTurnBasedMatchmakerViewControllerDelegate委托(delegate)方法等)。现在我从一台设备发送第一回合,需要等待大约
我有一款2人iOS回合制游戏,它使用游戏中心和GKTurnbasedMatch。有没有办法在比赛结束后以编程方式重新匹配对手?我想让玩家一键访问彼此开始新的比赛。如果没有一键式方法,有哪些潜在的替代方法? 最佳答案 事实上,GameCenter似乎忽略了一个完整程序化解决方案。痛苦,毫无疑问。在您的@selector(doRematchTap)...或类似的东西中尝试以下操作:NSMutableArray*playerIds=[NSMutableArrayarray];GKTurnBasedParticipant*otherPlay