- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在为 iOS 制作一款多人游戏,我阅读了 Apple Developer Center 中的资料,特别是 this one .这是我的自定义配对代码,非常简单:
- (void)findProgrammaticMatch {
GKMatchRequest *request = [[GKMatchRequest alloc] init];
request.minPlayers = 2;
request.maxPlayers = 2;
request.defaultNumberOfPlayers = 2;
request.playersToInvite = nil;
request.playerAttributes = 0;
request.playerGroup = 0;
UILabel *loading = (UILabel *)[aiw viewWithTag:792];
[[GKMatchmaker sharedMatchmaker] findMatchForRequest:request withCompletionHandler:^(GKMatch *match, NSError *error) {
if (error){
//error handling
[loaderLayer stopAnimating];
UIButton *cancelButton = (UIButton *)[loaderLayer viewWithTag:442];
[cancelButton setTitle:@"Go Back" forState:UIControlStateNormal];
loading.text = @"Cannot find any players. Please try again later.";
} else if (match != nil) {
//save match
self.match = match;
self.match.delegate = self;
loading.text = @"Found a player. Preparing session...";
if (!self.matchStarted && match.expectedPlayerCount == 0) {
self.matchStarted = YES;
//begin game logic
[self.scene setState:1];
self.myTicket = 1000+arc4random_uniform(999);
[self.scene send:self.myTicket];
[self stopLoading];
}
}
}];
}
但是,当一台或多台设备通过蜂窝网络连接到互联网时,配对会失败。当我调查潜在的错误时,我发现即使是 wifi 到 wifi 的情况,完成处理程序也不会按预期工作。也就是说,match.expectedPlayerCount
永远不会为 0。相反,游戏在 - (void)match:(GKMatch *)match player:(NSString *)playerID didChangeState:(GKPlayerConnectionState)state 时开始
处理程序在完成处理程序之后调用,如下所示:
...
- (void)match:(GKMatch *)match player:(NSString *)playerID didChangeState:(GKPlayerConnectionState)state {
switch (state) {
case GKPlayerStateConnected:
self.matchStarted = YES;
//begin game logic
[self.scene setState:1];
self.myTicket = 1000+arc4random_uniform(999);
[self.scene send:self.myTicket];
[self stopLoading];
break;
...
现在的问题是,如果连接了 3g 的设备(并且匹配)didChangeState
永远不会被调用。我在 Internet 和本网站上检查了其他几个相关问题,尽管它们远非令人满意。我还读到 Game Center 的沙盒服务器不可靠,并且对于某些人来说生产版本工作完美(它只是工作!)尽管沙盒模式存在错误,但我不想冒这个风险。有人在玩多人游戏时遇到过类似问题吗?
最佳答案
哈格,
您的代码没有任何问题。您必须允许您的应用使用蜂窝数据,这需要用户许可。
以下段落选自Apple's support website :
At the Foundation layer, you can use the setAllowsCellularAccess: method on NSMutableURLRequest to specify whether a request can be sent over a cellular connection. You can also use the allowsCellularAccess to check the current value.
At the Core Foundation layer, you can achieve the same thing by setting the kCFStreamPropertyNoCellular property before opening a stream obtained from the CFSocketStream or CFHTTPStream APIs.
In older versions of iOS, you can continue to use the kSCNetworkReachabilityFlagsIsWWAN as a best-effort way of determining whether traffic will be sent over a cellular connection, but you should be aware of its limitations.
祝你好运
伊曼
关于ios - 3G 连接的 GameKit 配对失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29522921/
我有一个服务器程序(适用于所有三个主要操作系统),它是用 C++ 创建的,它努力连接两个陌生人进行通信。我当前的模型似乎已经过时了,我只是想知道是否有更好的方法来为客户提供服务。 -服务器收到连接请求
我希望有人能告诉我 GoogleTV 如何与本地 Youtube 应用配对。 我感兴趣的是“第一屏”GoogleTV/SmartTV 功能。 据我目前所知,“第二屏”应用程序需要使用与配对服务(来自
感谢下面的提示 • 您需要一次遍历字符串一个字符(for 循环或 while 循环) 当您点击 ,这是您的结束标记 • 现在检查> 之前的字符。是/吗? • 是:查看堆栈顶部。该字符串与 之间的字符
我正在使用 Node.js 和 WebSocket 创建基本的一对一聊天。每次客户端连接时,都会向他们发送其 ID 以及 salt+id 的 MD5 哈希值。然后,他们需要与另一个客户配对。当它们配对
我刚刚开始深入研究 Racket 宏,并尝试制作一个简洁的宏定义宏。我想扩展这样的表达式: (macro id (param) replacement1 (params ...) re
我有一个 foreach 循环(看,它在下面),我得到了一些元素。将此数据存储到 MySQL 中时,我想选择每个“count[]”所属的类别(此处标记为“interaction[]”)。例如,如果第
是否有可能找到一种更好的/模块化的方式来为配对分配相同的颜色,而不是像我目前实现的那样对它们进行硬编码? 如果对象 fname 匹配,则分配相同的颜色。 以下是 javascript 对象的子集。 d
在我的 iPhone 应用程序中,我想与固件设备通信。在连接期间,他们可以要求提供配对 key ,但他们说他们没有提供输入 key 的规定。 在这种情况下,USP(用户智能手机)永远不知道输入的 ke
这个问题在这里已经有了答案: How to merge every two lines into one from the command line? (21 个回答) 关闭 6 年前。 使用一个简
function pair(str) { var dna = []; var dnaarr = []; for(var i = 0; i < str.length; i++) {
我是一个相对年轻的开发人员,我对一些事情感到困惑。 这是我的代码: function pairElement(str) { var arr = []; var pairs = [
我有一个脚本,可以从文本文件中读取并插入元素,以便可以对它们进行样式设置和显示。但是,我现在想在 DIV 中配对两个元素。这是代码: var lines = request.responseText.
.Spotify:hover img { display:block; position: absolute; z-index: 0; top:17%; lef
我正在努力使用摩托罗拉随 RAZR 提供的 BT 4.0 API。在 one of their documents它声明在连接和使用他们的框架之前使用 Android API 进行配对。根据他们的说明
谁能告诉我一次可以通过蓝牙将多少台设备与 iPhone 配对..需要帮助..直到现在我还没有确切的数字。 最佳答案 在 iOS 6.1.4 中,低功耗蓝牙设备的当前限制是 10 个同时连接(至少在 N
我正在创建一个扩展推送通知的 Android Wear 应用程序。当推送通知进来时,我的应用程序会从服务器下载大约 10 张图像,并在 watch 上显示这些额外的图像。这些图像特定于 android
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题?通过 editing this post 添加详细信息并澄清问题. 8年前关闭。 Improve this
我有一个类似于使用以下命令获得的数据表: dt <- data.table( time = 1:8, part = rep(c(1, 1, 2, 2), 2), type = rep(c(
为了回应有用的评论,我编辑了原始问题(我假设 for 循环和应用循环给出不同的结果)。 我正在使用 R 运行大量 2 组 t 检验,使用来自分隔表的输入。根据此处和其他地方的建议,我尝试了“for-l
是否可以将脚本(例如 MathJax)加载到 EpicEditor 预览 iFrame 中?我希望我的预览是正确的 Markdown,然后运行 javascript 来预览 MathJax 内容。
我是一名优秀的程序员,十分优秀!