问题标签 [gkmatchmaker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
474 浏览

ios - 你如何正确实现共享 GKMatchmaker 的 findMatchForRequest(所以 GKMatch.expectedPlayerCount == 0)?

当从 MatchmakerViewController 切换到 GKMatchmaker 时,我在不同设备(均为 iPhone 5s)上运行的两个沙盒游戏中心帐户不再连接到同一场比赛。两者都显示 expectedPlayerCount 仍高于 0。

我按照 RayWenderlich 教程使用游戏中心创建多人游戏。它应该是实时的,并且是这样工作的。使用 GKMatchmakerViewController 一切正常(自动匹配和邀请)。但是,一旦我切换了一个代码块,它就不再起作用了。我已经摆弄了一段时间了,苹果文档似乎对我一点帮助都没有。任何人都知道我可能需要做额外的事情吗?

这与工作之间的唯一区别是它具有 GKMatchmaker 而不是 GKMatchmakerViewController 和 Delegate。

0 投票
1 回答
35 浏览

game-center - 确定 GKTurnBasedMatch 的类型

我想知道某个 Game Center 回合制比赛是作为自动匹配比赛开始的,还是玩家是由朋友邀请的。

我试图想办法从 GKTurnBasedMatch 对象本身中看到这一点,但我想这是不可能的。我什至没有想出任何合理的破解方法。:)

我可以将它存储在匹配的数据部分,但我想在一个有很多匹配的表中使用这个信息,加载许多 kB 数据(并等待数据加载回调)有点矫枉过正可以使用此一位信息之前的每个匹配项。

一种替代方法是将此信息存储在本地文件中,也许我必须这样做,但感觉有点容易出错 wrt 不一致等。

有没有人有一个很好的解决方案?

0 投票
1 回答
58 浏览

ios - didChangeConnectionState 从未在 iPad 上调用过

这是一个奇怪的问题。我的程序在我的 iPhone 上运行良好,但不适用于 iPad。

在 iPhone 上,GKMatch 委托被正常调用,但在 iPad 2 和 iPad mini 上,didChangeConnectionState 函数永远不会被调用。

有什么解决方案吗?

0 投票
2 回答
156 浏览

ios - 在 GKMatchmakerviewcontroller 中处理取消

我正在为我制作的游戏制作多人游戏功能。

一切正常,除了当我在配对并且两个玩家都连接时,如果一个人点击“取消”按钮,另一台设备不会收到取消通知。

在另一台设备上,单词变为“断开连接”,但没有调用任何委托方法。

我该如何处理?

0 投票
2 回答
277 浏览

ios - 仅在 Gamecenter 中使用自动匹配

如何从 中删除邀请朋友按钮GKMatchmakerViewController

打印其中的所有子视图时,我只看到导航栏。

我是这样介绍的:

0 投票
2 回答
302 浏览

ios8 - 游戏中心对接会

我需要匹配3个玩家,1个巫师和2个战士作为属性。GKMatch 如何做到这一点?以下片段来自我的代码

为两名球员(一名巫师和一名战士)设置一切,效果很好,但我需要 2 名战士进行比赛。

先感谢您

0 投票
1 回答
103 浏览

cocos2d-x - EXE_BAD_BADACCESS 试图访问 GKMatch?

问题简介

尝试使用游戏中心与朋友实时玩游戏会导致游戏崩溃

项目详情

  • 我正在使用带有 cocos2dx 的游戏中心
  • 我正在使用沙盒模式:正在测试的两个帐户都处于沙盒模式
  • 2 Ipad 用于测试(IOS 8.3)
  • 我正在使用 GKMatchMaker 匹配玩家
  • 与“随机”又名“立即播放”的实时匹配没有问题
  • 实时匹配“邀请朋友”匹配成功,但访问 GKMatch 对象后崩溃
  • 当我使用可靠或不可靠的方法发送数据时发生崩溃(仅在邀请时)

我的调查

  • 在比赛期间访问 GKMatch 会创建 EXC_BAD_ACCESS
  • 在以下函数中访问时,分配给匹配变量的值不为空或无效:

-(void)matchmakerViewController: (GKMatchmakerViewController *) viewController didFindMatch:(GKMatch *)match

  • 我可能做错了整个过程

我处理邀请的流程

  1. 来自设备 A 的媒人向设备 B 发送有关邀请的通知
  2. 设备 B 打开并重定向到匹配室
  3. 设备 B 调用以下函数:

{

}

  1. 两个设备都调用以下函数:

{

}

  1. 设备 A 向设备 B 发送数据(此处发生崩溃)

{ -(void) sendDataToOppUnreliable:(NSString*)str

GKMatchSendDataUnreliable error:&error];// EXC_BAD_ACCESS

}

谢谢您的帮助 :)

0 投票
1 回答
184 浏览

objective-c - (GKMatch GKVoiceChat) - 在调用 didFindMatch 后,两个玩家都会断开连接

我正在尝试使用 GKMatch 对象在两个连接的玩家之间实现 VoiceChat。我的球员已经过身份验证,我还可以使用 GKMatchmakerViewController 创建比赛。

问题是当我通过委托回调收到 GKMatch 对象时matchmakerViewController:didFindMatch:,我设置了 AudioSession 和 VoiceChat 对象。但是在此方法返回后不久,我在 GKMatch 的委托中得到回调match:player:didChangeState:

以下是我在 didFindMatch 回调中创建 AudioSession 和 VoiceChat 的方式:

我从来没有接到电话playerStateUpdateHandler。我在以下函数中断开连接:`- (void)match:(GKMatch *)match player:(NSString *)playerID didChangeState:(GKPlayerConnectionState)state { if (_match != match) return;

}`

问题:-

我在任何一端都听不到任何音频,我错过了什么吗?我已经尝试了 3 天了,并且(作为一个附带问题)我不确定如何处理我的第二个玩家。因为,当有匹配时,我在其中一个设备上得到 didFindMatch 并且在另一台设备上没有回调。我需要在其他设备上发送消息吗?关于比赛?

快速帮助将不胜感激。

0 投票
1 回答
80 浏览

xcode - 遇到运行时错误“尝试插入零对象”

我正在尝试使用 Xcode 7 beta 5 编写一个简单的多人 Swift 程序。我在运行时遇到以下错误:

然后我尝试了错误,发现这段代码以某种方式引入了这个错误:

我想知道这里的任何专家都可以解释这里出了什么问题吗?太感谢了!

山姆

0 投票
1 回答
452 浏览

swift - 警告:尝试在另一个视图控制器上显示视图控制器,其视图不在窗口层次结构中

我有一个简单的单人游戏,其中初始视图控制器有一个按钮来启动游戏。此按钮执行 segue,GameViewController 中的所有游戏逻辑都按预期工作。

我已经按照本教程为我的游戏添加了多人游戏功能。在初始视图控制器上,一个按钮现在调用

在 GameKitHelper.swift 中有以下实现:

MultiPlayerNetworking 类实现了 GameKitHelper 协议,并在 matchStarted 函数上被调用。MultiPlayerNetworking 类实质上接管了这里,并开始向主机和远程玩家发送消息。

请注意,一段时间后,当自动匹配完成时,GameKitHelper 中会调用以下函数:

现在,我认为这表示 GKMatchmakerViewController 已被解除,从而再次向我显示初始视图控制器(这就是屏幕上发生的情况)。

现在我的问题!在 GKMatchmakerViewController 被解散后,我回到了初始视图控制器并想要“模拟”我的 gameView 的自动 segue(它也具有处理多人游戏的逻辑)。

我已经使初始视图控制器符合 MultiPlayerNetworking 协议,该协议具有模拟 segue 的功能:

但是,xCode 抱怨:

我被困在这里,并尝试了很多不同的方法来关闭视图控制器,以确保我通过此链接调用 topViewController 上的 performSegue 函数,但没有任何效果。

我的问题:为什么 GKMatchmakerViewController 在视觉上消失了,但仍然存在于视图层次结构中,这样在初始视图控制器上调用 performSegue 函数会给出上述错误/警告?

意见不胜感激!