Tag: 游戏中心

GKTurnBasedMatch matchData的最大尺寸

我一直在寻找一个明确的答案,但我得到了一些不一致的答案。 苹果文档状态64k字节。 然而,网上我发现多个来源,说4k字节是最大的。 这是iOS 5和iOS 6的区别吗?

游戏中心与Sprite Kit整合?

我如何使用Game Center或GameKit框架与Sprite Kit Xcode模板? 在Sprite套件中,它使用场景; 但通常查看排行榜,例如你需要“presentModalViewController”,但在SKView中是不可能的。 我怎样才能在iOS 6中authentication玩家和所有其他有趣的东西。 提前致谢!

游戏中心播放器显示名称沙盒中始终为“我”

我正在使用用户的游戏中心显示名称和玩家ID,以便在我的服务器上维护他们的个人资料。 当我去testing这个时候,一切似乎都正确执行,但是我的沙箱帐户的用户显示名称显示为“我”,而不是显示名称附加到我的帐户“Billybobbo”。 这应该发生在沙箱模式? 安慰: 2013-08-31 18:51:37.054 [App Name][53230:907] Player ID: G:1682017882 2013-08-31 18:51:37.065 [App Name][53230:907] Player Display Name: Me

检查您是否已经在Game Center / GameKit中解锁了成就

我已经在这个很长时间了。 我明白如何在Game Center中取得成就,甚至还有一个完整的消息系统。 但我不知道如何检查一个成就已经被解锁:( 显然这不起作用: GKAchievement *achievement = [[GKachievement alloc] initWithIdentifier:ident] autorelease]; NSLog(@"%i",achievement.completed); 它始终跟踪“0”。 解锁成就确实奏效: GKAchievement *achievement = [[GKachievement alloc] initWithIdentifier:ident] autorelease]; achievement.percentComplete = 100; 所以并不是我在整个成就方面犯了错误,只是GameKit不能告诉我成就是否已经被解锁了。 如果有人能帮助我,我将非常感激!

Swift – 整合GameCenter使用排行榜

我正在Swift做一个游戏。 我希望能够使用GameCenter发布用户的分数,从而可以看到我所有用户的分数。 不过,我已经花了一天的时间来弄清楚如何做到这一点,但我还没有find有用的指示。 我对iOS编程,Swift以及关于这个主题的很less的信息都很陌生,都是用Objective-C编写的。 任何人都可以帮助我将GameCenter集成到我的应用程序,以便我可以将用户分数发布到排行榜供人们看? 编辑:我已经在iTunesConnect上创build了GameCenter排行榜。 编辑2:我已经试过以下教程: http : //www.appcoda.com/ios-game-kit-framework/并将其转换为Swift。 我已经转换了这个: -(void)authenticateLocalPlayer { GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer]; localPlayer.authenticateHandler = ^(UIViewController *viewController, NSError *error){ if (viewController != nil) { [self presentViewController:viewController animated:YES completion:nil]; } else{ if ([GKLocalPlayer localPlayer].authenticated) { _gameCenterEnabled = YES; // Get the default leaderboard identifier. [[GKLocalPlayer localPlayer] loadDefaultLeaderboardIdentifierWithCompletionHandler:^(NSString *leaderboardIdentifier, NSError *error) { […]

如何启用Facebook像GameCenter的iOS 8?

我使用Objective-C代码更新了GameCenter中的排行榜和成就。 但问题是,每当我打开GameCenterController使用代码显示Facebook Like不可用。 我该如何解决? 我也在电话设置中login了Facebook。 我要做什么?

游戏中心的自动匹配和endTurnWithNextParticipants

我正在开发一款带有两个Game Center玩家的回合制游戏,我希望允许自动匹配。 我已经读到,邀请被发送给玩家,邀请玩家必须轮到他/她。 这意味着调用这个方法: – (void)endTurnWithNextParticipants:(NSArray *)nextParticipants turnTimeout:(NSTimeInterval)timeout matchData:(NSData *)matchData completionHandler:(void (^)(NSError *error))completionHandler 现在,我不明白的是“nextParticipants”数组的含义,以便在自动匹配模式下启动匹配,在我看来,这是通过设置参与者为零来完成的,例如: GKMatchRequest *request = [[GKMatchRequest alloc] init]; request.minPlayers = 2; request.maxPlayers = 2; request.playersToInvite = nil; request.inviteMessage = @"Let's play"; [GKTurnBasedMatch findMatchForRequest: request withCompletionHandler: ^(GKTurnBasedMatch *match, NSError *error) { NSLog(@"%@", match); }]; 如果arrays是零,我不知道谁将参加比赛,我怎么可能通过轮到下一个球员? 如果我在下一个参与者的论点中使用零,当然我会得到一个“下一个参与者的错误列表”的错误。 苹果的文件似乎对此一言不发。 所以,我也不明白的是自动匹配实际上是如何工作的。 是否将无条件地匹配任何已经与自动匹配开始新比赛的球员? 我不能以某种方式select什么样的比赛我想自动匹配? (假设,例如,游戏允许有几个难度级别,我不希望与某个玩家在较低级别上进行自动匹配)。 编辑(根据xcodegirl的评论): 为了解决这个问题,通过添加一些在请求的playerGroup属性中编码想要的匹配types来扩展上面的代码就足够了: request.playerGroup […]

iOS游戏工具包回合匹配程序重新匹配

我有一个使用游戏中心和GKTurnbasedMatch的2人游戏,iOS回合制游戏。 有没有一种方法可以在比赛结束后以编程方式重新匹配对手? 我想给玩家一键访问,开始一场新的比赛。 如果没有一个button的方法,有什么潜在的select?

Game Center Matchmaking GKTurnBasedMatch有明显的滞后(〜1分钟)

我正在通过gamecenter实现一个多人模式的回合制游戏。 我有2个设备(1 ipad,1个iphone)在沙箱模式下testing,工作正常,但最近它已经开始在自动配对过程中挣扎。 在我从一个用户发送第一个转向后,另一个设备不会立即识别该游戏,而是开启自己的新游戏。 在能够立即发现在其他设备上启动的游戏之前,配对相当简单。 我不记得改变任何有关配对的部分( NSCoding , GKTurnBasedEventHandler , GKTurnBasedMatchmakerViewControllerDelegate委托方法等)。 现在我从一台设备发送第一个回合,需要等待大约1分钟,以便其他设备可以成功连接到该游戏。 连接发生后,endTurnWithMatchData调用没有任何问题,它可以在1-2秒内发送和接收数据。 但是如果用户开始一个新鲜的游戏,并且不得不等待1分钟,那么另一个用户就可以连接到他的游戏。 有没有人在汽车配对过程中遇到明显的滞后? 我还没有实施邀请,所以我无法检查。 我用NSKeyedArchiver存档的比赛数据看起来相当大,3396字节,甚至对于几乎没有数据的新游戏。 这里是我的代码的相关部分: GameOptionsViewController : – (void)turnBasedMatchmakerViewControllerWasCancelled:(GKTurnBasedMatchmakerViewController *)viewController { [self dismissViewControllerAnimated:YES completion:nil]; } – (void)turnBasedMatchmakerViewController:(GKTurnBasedMatchmakerViewController *)viewController didFailWithError:(NSError *)error { [self dismissViewControllerAnimated:YES completion:nil]; } – (void)turnBasedMatchmakerViewController:(GKTurnBasedMatchmakerViewController *)viewController didFindMatch:(GKTurnBasedMatch *)match { [self dismissViewControllerAnimated:NO completion:nil]; self.gcMatch = match; [self performSegueWithIdentifier:@"GameMultiplayer" sender:self]; } – […]

GameCenter不更新排行榜

使用沙盒Gamecenter。 无论我做什么,分数都不会出现在排行榜上。 我正在使用下面的代码: – (void)scoreReported: (NSError*) error { NSLog(@"%@",[error localizedDescription]); } – (void)submitScore{ if(self.currentScore > 0) { NSLog(@"Score: %lli submitted to leaderboard %@", self.currentScore, self.currentLeaderBoard); [gameCenterManager reportScore: self.currentScore forCategory: self.currentLeaderBoard]; } } scoreReported不会产生错误,但分数不出现在排行榜。 我知道该类别是正确的,因为我使用currentLeaderBoard: – (void)showLeaderboard { NSLog(@"leaderboard = %@", self.currentLeaderBoard); GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init]; if (leaderboardController != NULL) { leaderboardController.category = self.currentLeaderBoard; […]