Tag: 游戏中心

iOS开发:authenticationGame Center用户的奇怪问题

我正在构build支持Game Center(GC)的iPhone游戏。 当应用程序启动时,我尝试authentication本地播放器… if([GKLocalPlayer localPlayer].authenticated == NO) { [[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:^(NSError *error) { [self callDelegateOnMainThread: @selector(processGameCenterAuth:) withArg: NULL error: error]; }]; } 一切似乎都运作良好。 如果用户在启动应用程序时未loginGC,则应用程序将显示一个对话框,提供三个选项… login到现有的帐户 创build一个帐户 取消 这是期望的行为,但是当我testing的时候,我点击了“取消”选项,现在validation过程出错,每次出现以下错误“请求的操作已被取消”。 即使当我删除应用程序并重新安装它,它仍然错误,对话框现在永远不会popup。 有谁知道为什么会发生这种情况,或者我该如何解决这个问题? 预先感谢您的智慧!

iOS开发:当收到Game Center邀请函时,如何获取GKMatch对象?

我正在构build一个使用Game Center的iPhone游戏,而且我很难理解如何开始一个通过接收朋友的邀请而开始的比赛游戏。 文档说这个… 当应用程序直接从另一个玩家接收邀请时,acceptedInvite参数是非零。 在这种情况下,其他玩家的应用程序已经创build了匹配请求,所以这个应用程序的副本不需要创build一个。 据此,我不需要创build一个匹配请求,因为邀请的玩家已经创build了一个。 如果是这样,我该如何获得发送/接收数据到另一个玩家所需的GKMatch对象? 我知道获取GKMatch对象的唯一方法是创build一个匹配请求并调用findMatchForRequest方法,文档说这是我不应该做的。 他们唯一的代码示例涉及创build和使用GKMatchmakerViewController ,我不能使用,因为我创build自己的自定义视图。 非常感谢您的智慧!

iOS游戏中心GameKit程序化邀请配对

我正在尝试实现一个实时的多人游戏与自定义用户界面(没有GKMatchMakerViewController)。 我使用的是startBrowsingForNearbyPlayersWithReachableHandler:^(NSString * playerID,BOOL可达)find一个本地播放器,然后用GKMatchmaker单例(我已经发起)发起一个匹配请求。 这是我遇到麻烦的地方。 当我发送请求时,完成处理程序几乎立即触发,没有错误,并且它返回的匹配具有预期的玩家数为零。 同时,另外一个玩家肯定没有回应这个要求 相关编码: – (void) findMatch { GKMatchRequest *request = [[GKMatchRequest alloc] init]; request.minPlayers = NUM_PLAYERS_PER_MATCH; //2 request.maxPlayers = NUM_PLAYERS_PER_MATCH; //2 if (nil != self.playersToInvite) { // we always successfully get in this if-statement request.playersToInvite = self.playersToInvite; request.inviteeResponseHandler = ^(NSString *playerID, GKInviteeResponse response) { [self.delegate updateUIForPlayer: playerID accepted: (response == […]

iOS游戏中心 – 在一台设备上的validation错误

在我的其中一台设备(运行iOS7的iPad mini)上,当我尝试在Game Center中进行身份validation时,出现了一个可怕的错误: Authentication Error: Error Domain=GKErrorDomain Code=2 "The requested operation has been cancelled or disabled by the user." UserInfo=0x15ef0f00 {NSLocalizedDescription=The requested operation has been cancelled or disabled by the user.} 我清楚地login到游戏中心。 我已经完全从设备上抹去了应用程序,甚至从Xcode删除应用程序后,我仍然得到错误。 我可以login与其他设备没有问题。 我在不同的设备上login了相同的GC帐户。 这只是在这个特定的设备上,它不会authentication我的应用程序,也不会在游戏中心应用程序的“游戏”列表中显示。 有什么build议么?

buttonanimation像ios游戏中心button

我试图让我的buttonanimation像button在iOS游戏中心。 他们似乎像一个泡沫一样在屏幕上摇摆。 我尝试过在屏幕上随意移动我的button,使它们同时在一个不断的环形path中移动,但效果并不相同。 我需要一个摇摆的效果。 任何想法表示赞赏

通过Game Center发送NSString

我想通过Gamecenter发送另一个到另一个iPhone / iPad的NSString,但它与EXC_BAD_ACCESS 在.h文件中 typedef enum { kMessageTypeRandomNumber = 0, kMessageTypeGameBegin, kMessageTypeSubmit, kMessageTypeExchange, kMessageTypePickup, kMessageTypePass, kMessageTypeGameOver } MessageType; typedef struct { MessageType messageType; } Message; typedef struct { Message message; NSString *submitTile; } MessageSubmit; 在这里.m文件 – (void)sendData:(NSData *)data { NSError *error; BOOL success = [[GCHelper sharedInstance].match sendDataToAllPlayers:data withDataMode:GKMatchSendDataReliable error:&error]; if (!success) { CCLOG(@"Error sending init […]

GameCenter:endTurnWithNextParticipants不前进

在沙盒环境中,我无法将转身比赛推向下一位选手。 初始条件: 设备A和设备B上的玩家A和玩家B. 都login到沙箱 两个玩家都可以看到彼此的GC状态消息 玩家A创build一个匹配并邀请玩家B 玩家A结束 在我的“转弯”function中,我执行以下操作: NSLog(@"size = %ld", updatedMatchData.length); //move the current player to the bottom of the list NSMutableArray *nextPlayers = (NSMutableArray *)theMatch.participants; NSLog(@"%@", [nextPlayers description]); GKTurnBasedParticipant *firstGuy = nextPlayers[0]; [nextPlayers removeObjectAtIndex:0]; [nextPlayers addObject:firstGuy]; NSLog(@"——"); NSLog(@"%@", [nextPlayers description]); //send the match to the servers //"theMatch" was recorded in turnBasedMatchmakerViewController:didFindMatch [theMatch endTurnWithNextParticipants:nextPlayers […]

让GameCenter邀请朋友工作(iOS9?)

我无法让GameCenter邀请朋友工作。 比赛制造者视图控制器很快显示被邀请的玩家和它下面的一个小文本“失败”。 也许我select了错误的时间来学习GameCenter,因为不less人报告iOS9的困难。 但也许有一个解决scheme的地方。 基本: iTunesConnect应用程序logging存在,应用程序不公开,GameCenter已启用,已创build一个排行榜,已创build两个沙箱用户(不同于我的主苹果ID) 该应用程序有一个视图控制器,现在应该处理所有GameCenter的东西 在viewDidLoad ,玩家身份validation通过将一个块分配给[GKLocalPlayer localPlayer].authenticateHandler 。 在块中显示传入的视图控制器(如果有的话)。 这工作。 视图控制器被设置为GKGameCenterControllerDelegate ,它的工作,“didFinish”调用收到,我在这里closuresGameCenter视图控制器。 在authenticateHandler块中,当播放器被authentication时,我使用[[GKLocalPlayer localPlayer] registerListener:…];将视图控制器设置为侦听器[[GKLocalPlayer localPlayer] registerListener:…]; 。 所有GKLocalPlayerListener方法的方法存根都是通过日志调用实现的。 当点击某个button时,我创build一个GKMatchRequest和GKMatchmakerViewController ,将我的视图控制器设置为媒人委托,并呈现媒人视图控制器。 再次,所有委托方法都通过日志调用来实现。 我可以运行应用程序,在媒人视图控制器中点击“邀请朋友”,并按照屏幕,直到我点击“发送”button。 然后被邀请的玩家被显示在右边的插槽上,稍后显示“失败”,再次显示“自动匹配”。 没有播放器侦听器方法被调用。 问题: 我是否需要启用推送通知才能邀请朋友工作? (如果是的话,这是在哪里logging?) 是否有可能在模拟器/模拟器或设备/模拟器或只有设备/设备之间testing邀请朋友? 从设备的GameKit日志中,“没有对等的注册”是什么意思? (见下文) 其他资源: 游戏中心多人朋友在IOS 9中被破解了吗? (OCT / 2015) 如何解决游戏中心的邀请朋友? (2013) http://www.raywenderlich.com/60980/game-center-tutorial-how-to-make-a-simple-multiplayer-game-with-sprite-kit-part-1(CatRace – March / 2014) 游戏中心邀请立即失败 (2015年10月) GameKit日志: 我打开了iPhone上的设置的GameCenter日志logging,并导出日志。 引起我注意的第一件事就是“没有注册同行(…)”: <NSHTTPURLResponse: 0x167a2cc0> { […]

游戏中心邀请立即失败

我们在使用GKGameCenterViewController发送邀请时GKGameCenterViewController 。 视图控制器打开很好,但是当我们尝试发送一个邀请给某人,它立即失败。 两个帐户都启用游戏中心邀请,并通过GKGameViewController查找其他玩家的工作正常。 以下是我们用来pipe理邀请函的代码: 这个方法在GKLocalPlayer进行身份validation后立即被调用(从GKLocalPlayer调用身份validation,该代码位于单独的Game Centerpipe理类中): internal func authenticationChanged() { if GKLocalPlayer.localPlayer().authenticated && !authenticated { print("Authentication changed: player authenticated") authenticated = true GKLocalPlayer.localPlayer().unregisterAllListeners() GKLocalPlayer.localPlayer().registerListener(self) } else { print("Authentication changed: player not authenticated") authenticated = false GKLocalPlayer.localPlayer().unregisterAllListeners() } } 这是接收到邀请时应该调用的方法,尽pipe它不会在发送请求失败时被调用。 public func player(player: GKPlayer, didAcceptInvite inviteToAccept: GKInvite) { //presentingViewController.dismissViewControllerAnimated(false, completion: nil) print("Accepted invite") let mmvc […]

Game Center matchData的最佳实践

我是GKTurnBasedMatch的新手,我试图弄清楚在轮到队员之间发送的“matchData”是什么好的做法。 我发现的所有教程主要包括发送一串文本,我想发送更多的东西。 如果有人能给我一个更高级的教程,那将是非常棒的。 我想做的一个例子是一场战斗。 这两个玩家有他们的化身,他们有不同的细节(健康,攻击,防守等),我应该如何发送这些数据? 我认为可能的唯一方法是将所有的匹配细节(很多)编码成一个NSDictionary并发送,以便它们可以再次放回到自定义匹配对象中。 我应该实施NSCoding? 谢谢!