Tag: 游戏中心

我如何回复GKTurnBasedExchange? GKLocalPlayerListener委托receivedExchangeReplies被间歇调用

有一些post讨论了Game Center的推送通知在沙盒中是如何相当不可靠的。 但是,沙箱是用iOS 9混淆,所以我不知道为什么我的游戏中心推送通知是如此不可靠。 当我回复主动交换时,发送者很less被通知。 [exchange replyWithLocalizableMessageKey:@"EXCHANGE_REPLY" arguments:@[] data:data completionHandler:^(NSError *error) { if (error) { NSLog(@""); } }]; 在发件人设备上,如果我刷新匹配数据,我会看到待处理的答复。 如果我处理答复,一切正常。 这个方法也是一样的: – (void)sendExchangeToParticipants:(NSArray<GKTurnBasedParticipant *> *)participants data:(NSData *)data localizableMessageKey:(NSString *)key arguments:(NSArray<NSString *> *)arguments timeout:(NSTimeInterval)timeout completionHandler:(void(^__nullable)(GKTurnBasedExchange *exchange, NSError *error))completionHandler 在这一点上,我想我最好的select是运行我自己的推送通知逻辑触发更新匹配数据。 这或我读过发送提醒更可靠,但我相信有限制周围的限制。 更新 我试过只使用设备而不是模拟器。 同样的问题。 看起来这是一个相当有名的问题。 甚至在第766页的这本书中都有提到。 更新 发送提醒没有帮助。 更新 通常在回复交易时,我会从GameKit得到这个错误。 The connection to service named com.apple.gamed was […]

游戏中心邀请不会显示

我一直在开发一个允许多人游戏的游戏。 我以前testing过多人邀请,他们都工作。 发送来自一个设备的请求在另一个设备上显示了一个横幅,如果邀请被接受,游戏开始。 就在提交应用之前,两天前,我再次testing了这个function,发现它已经停止工作。 – (void)authenticateLocalUser:(UIViewController *)viewController :(id<GCHelperDelegate>)theDelegate { delegate = theDelegate; self.presentingViewController = viewController; if (!gameCenterAvailable) { // Game Center is not available. userAuthenticated = FALSE; } else{ GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer]; /* The authenticateWithCompletionHandler method is like all completion handler methods and runs a block of code after completing its task. The […]

有可能有一个游戏中心“LowestScore”排行榜?

我已经读过,Game Center排行榜分数只有在新发布的分数大于已有分数时才会更新 。 这让我想知道是否有可能存在一个存储分数倒数的游戏中心排行榜,例如“完成时间的水平”。 这是否仍然可以通过排行榜的正确设置来实现,例如sorting和格式化修饰符? 而只是为了确认,是否真的不可能有一个游戏中心排行榜只是接受你发送给它的价值,无论是更大还是更小?

iOS9“这个游戏不被游戏中心识别。”

我无法让游戏中心与我的应用程序一起工作。 每当我尝试对用户进行身份validation时,都会返回以下错误: "The requested operation could not be completed because this application is not recognized by Game Center." 我的大部分互联网search都已经得到响应“确保沙盒已启用”,但是新的iOS 9没有沙箱了。 我也确定我的Bundle ID和我的所有证书是正确的,所以我不认为这是问题所在。 提前致谢! 迈克尔

iOS 7:如何为Game Center媒人设置邀请处理程序

在iOS 7中处理其他玩家邀请的正确方法是什么? 在我的视图加载到我的根视图控制器之后,我打电话给一个游戏中心authentication方法,之后我设置了一个如下所示的邀请处理程序: [[GKLocalPlayer localPlayer] registerListener:self]; 我的视图控制器采用GKLocalPlayerListener和GKInviteEventListener协议,顺便说一下,注册一个监听器AppDelegate的最佳位置是什么? 也许或者也许我的自定义游戏中心单身? 我添加一个在GKInviteEventListener描述的方法 -(void)player:(GKPlayer *)player didAcceptInvite:(GKInvite *)invite { NSLog(@"Invite accepted!"); GKMatchmakerViewController *mmvc = [[GKMatchmakerViewController alloc] initWithInvite:invite]; mmvc.matchmakerDelegate = self; [self presentViewController:mmvc animated:YES completion:nil]; } 但是,游戏中心媒– matchForInvite:completionHandler:有这样的话题:接受来自其他玩家的邀请和方法– matchForInvite:completionHandler:我不明白如何使用它。 那么,我必须使用什么?

iOS开发:如何在Game Center中自动匹配玩家?

我在我的应用程序中有一个“立即播放”button,允许玩家与其他随机播放器进行自动匹配。 也许我错过了文档中的某处,但是如何编写代码来自动匹配播放器呢? 游戏中心沙盒服务器在过去几天已经搞乱了,所以我很难尝试不同的事情,因为我不得不猜测,因为游戏工具包文档并不完全清楚如何做到这一点。 目前,我有代码设置(但未经testing)与朋友创build一个匹配… NSArray *playerList = [NSArray arrayWithObject:pid]; GKMatchRequest *request = [[[GKMatchRequest alloc] init] autorelease]; request.minPlayers = 2; request.maxPlayers = 4; request.playersToInvite = playerList; [[self waitingIndicator] startAnimating]; [[GKMatchmaker sharedMatchmaker] findMatchForRequest:request withCompletionHandler:^(GKMatch *match, NSError *error) { if (error) { //handle error } else if (match != nil) { self.myMatch = match; //start match code } […]

游戏中心login对话框首次取消后不再显示(iOS7)

将用户login到游戏中心时遇到问题。 我在应用程序完成加载之后首先显示login对话框。 如果用户取消对话框,我想通过在主菜单中提供一个loginbutton来让他改变主意。 然而,在使用iOS7的iPad上,该button不起任何作用 – 游戏中心对话框不显示(它在iOS6上正常工作)。 相反,我立即收到错误“请求的操作已被用户取消或禁用”。 在应用程序启动和button水龙头上调用相同的代码。 它使用authenticateWithCompletionHandler方法,基本如下所示: GKLocalPlayer* localPlayer = [GKLocalPlayer localPlayer]; [localPlayer authenticateWithCompletionHandler:^(NSError *error) { OnLogin(error); }]; (我知道这个方法已经被弃用了,但是我对这个新方法的经验更糟)。 有趣的是,如果我将应用程序移动到背景,然后将其带回到前景,GC对话框会出现。 我所描述的问题甚至在第一次取消之后就会发生,所以我认为这与Game Center禁止取消应用程序之后有任何关系。 有谁知道如何解决这一问题?

设置第三方服务器与Game Center进行交互

我正在考虑在iOS游戏中添加一个function,以便玩家创build自己的游戏关卡,与其他玩家分享关卡等等。还有一个用户创build关卡的公共存储库,可以按创builddatesorting,评分,难度或其他标准。 这种function需要第三方服务器。 我想我会用Sinatra创build一个RESTful API并在Heroku上运行它。 我的问题是:什么是最好的方式来validation这个API的请求? 我不想要求玩家创build用户名和密码。 我想只使用Game Center的ID系统。 有什么build议么? 我从来没有做过任何服务器端的东西,所以任何帮助表示赞赏! 澄清 是的,我知道苹果不提供自己的系统。 但它确实给开发人员提供了唯一的Game Center标识符(developer.apple.com/library/mac/#documentation/…),我希望能以某种方式使用它来推出我自己的身份validation系统,而不需要用户通过Facebooklogin/微博/等。 如果可能的话。

Xcode Mass Multiplayer(不是你可能想的)

好,所以我想做一个游戏,我试图不透露它是什么,但它需要在游戏中的某个级别的任何一个正在玩的人能够看到对方的MMO风格,但不真。 例如: 假设我有球员鲍勃,玛丽和罗布。 假设鲍勃是第四级,玛丽是第六级,罗布也是第四级。顺便说一句,这些会显示在排行榜上。 我想要的是Bob和Rob以及其他4级和当前正在玩的人在一个精灵套件中看到对方。 我希望玛丽和其他6级的人一起rest。 我不知道从哪里开始。 所以我的问题是: 我应该甚至使用Xcode还是使用Unity会更好? GameCenter是否有这个function,或者我需要使用Parse或类似的东西 而且,就这个工作的概念而言,请您指出正确的方向? 如果你能回答任何这将是真棒!!!!! 如果不是太酷的话 提前致谢!

如何使用PHP在我的“第三方服务器”上validationGKLocalPlayer?

请原谅我的笨拙,我是新来的Stackoverflow,C#和客观C. 简而言之,我正在试图解决这个问题,但在PHP中: 如何在我的“第三方服务器”上validationGKLocalPlayer? 希望这也将有助于其他PHP开发人员在同一件事情上工作。 我正在使用Unity(Unity3D)和PHP服务器端。 我已经有Objective C正确地连接到GameCenter,并通过调用generateIdentityVerificationSignatureWithCompletionHandler来返回数据。 不幸的是,我不知道我在做什么错误来validationSHA1哈希。 过去一周我一直在努力,尝试各种各样的事情,但没有运气。 我正在尝试三种不同的方法来制作SHA1哈希(如下所示)。 一旦进入Objective C,另一个在Unity的C#中,最后是第三次在我的服务器上。 Objective C和C#SHA1哈希结果完全相同。 但是,PHP不匹配它们。 而且没有任何证据反对苹果公共证书和签名。 无可否认,我可能会误解一些根本性的东西。 至less得到Objective C和C#哈希validation将是一个巨大的步骤。 谢谢。 目标C代码: [localPlayer generateIdentityVerificationSignatureWithCompletionHandler:^(NSURL *publicKeyUrl, NSData *signature, NSData *salt, uint64_t timestamp, NSError *error) { NSDictionary *params = @{@"public_key_url": [publicKeyUrl absoluteString], @"timestamp": [NSString stringWithFormat:@"%llu", timestamp], @"signature": [signature base64EncodedStringWithOptions:0], @"salt": [salt base64EncodedStringWithOptions:0], @"player_id": [GKLocalPlayer localPlayer].playerID, @"app_bundle_id": [[NSBundle mainBundle] […]