问题标签 [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.
ios - 如果已经呈现 GKMatchmakerViewController 并在收到邀请时呈现新实例,如何解除 GKMatchmakerViewController?
当一个人接受邀请时,gameKit 会调用以下委托方法
当用户尚未呈现GKMatchmakerViewController
.
如果邀请进入时用户已经在使用 GKMatchmakerViewController(例如:当用户已经在尝试查找匹配项时),这将不起作用。如果是这种情况,当邀请进入时,我会收到以下警告,并且不会显示带有邀请的控制器(因为已经出现了 matchmakercontroller)。结果,用户无法响应邀请。(什么都没发生)。
在 iOS6 中,可以通过以下方式解决此问题:
然后创建GKMatchmakerViewController
. dismissModalViewControllerAnimated:
在 iOS6 中已被弃用。建议dissmissViewControllerAnimated:completion:
改用,但对我不起作用。这是我尝试过的:
if 块被输入,但现有的 GKMatchmakerViewController 没有被解除,新的也没有出现。如果我在 if 语句中放置一个断点,当我在中断后“继续”时,视图控制器被解除,但新的控制器不会弹出。
我怎样才能得到这个工作?
ios - GKMatch - 实时 - 邀请处理程序
我正在尝试使用游戏中心以编程方式创建实时多人游戏。我的问题是缺少文档,因为旧inviteHandler
版本已被弃用。
我做的第一件事是身份验证:
之后,我按照苹果文档上的说明开始邀请过程。
我实现了以下方法,但它们从未被调用:
如何让其他玩家收到邀请并做出回应?在苹果文档中,演示了不推荐使用的旧方式。
ios - 配对在 wifi 上有效,但在 3g 上无效
出于某种原因,当两个设备在同一个 wifi 上时,游戏中心 matchMaking 运行良好,但当其中一个设备在 3g 上时无法运行(设备不断搜索并且找不到彼此)。我正在使用: 1. 带有沙盒帐户的 iOS 7.0.4 的 iPad 2(与设备的应用商店帐户兼容) 2. 带有沙盒帐户的 iOS 7.0.4 的 Iphone 4s(与设备的应用商店帐户兼容,但与 iPad 不同帐户)。
创建匹配的代码如下所示:
}
知道是什么导致了问题吗???
ios - 无法使用 GKMatchmakerViewController 找到玩家
我正在尝试集成 Game Center 以匹配玩家。我正在使用这个非常简单的功能:
我确实有一些回调,从未调用过':
当我在我的设备(iPhone 或 iPad)上测试时,都使用 iOS 7.1,我可以从我的应用程序中打开游戏中心,但是当我点击“立即播放”时,我立即收到错误:“找不到玩家”。然而,我的代码中似乎没有一个回调被触发。知道我做错了什么吗?我确实尝试过重置我的 iPad 设置、从 iCloud 注销、重新启动我的设备等。
ios - 已收到并处理 Game Center 邀请,但比赛未开始
我的 Game Center 代码遇到了障碍,并且进行了研究和研究,并且正在使用似乎是公认的标准方法。我只是看不出哪里出了问题。
我正在编写一个四人纸牌游戏,如果有任何玩家退出,我希望他们能被邀请回到游戏中。
场景是这样的:一场比赛正在进行中,所有球员都在比赛中。一名玩家退出游戏。指定主机检测到断开连接,并使用 向 dropout 发送邀请addPlayersToMatch
。dropout的inviteHandler已在开始时设置,并触发。辍学者收到邀请并调用似乎是标准代码的代码:
在 dropout 机器上,MatchMakerViewController 适时出现,它只显示已经在比赛中的球员,他们很快就会被标记为“Ready”。然而,控制器显示消息“等待游戏开始...”,并且didFindMatch
从未被触发。没有启动游戏的 UI(唯一的按钮是左上角的取消)。
奇怪的是主机上的机器inviteeResponseHandler
确实触发了,所以主机似乎收到了辍学回来的消息。我在finishMatchmakingForMatch
这里打电话,但它似乎没有做任何事情。
那么我如何告诉我的辍学者解雇 MatchMakerViewController?
扯掉我的头发!
ios - Swift 中 iOS 8 中的 startBrowsingForNearbyPlayersWithHandler()
我目前正在用 Swift 制作一个 2 人战略棋盘游戏,需要通过本地 WiFi 或蓝牙连接两台 iPad。无论我今天尝试了什么,我都无法让它们相互检测(我已经尝试过本地 WiFi 和蓝牙)。
这是我的应用程序首次启动时在 UIViewController 中运行的授权代码(始终返回“本地播放器已通过身份验证。”以及 ID:
这是我在单独的 UIViewController 中检测附近设备的代码:
无论我用我的两台 iPad(都是 iPad 3 型号)做什么,都没有看到另一台。我是否正确调用 startBrowsingForNearbyPlayersWithHandler ?
另请注意,在上面的授权代码中,我使用的是这篇文章推荐的 Objective-C 解决方法:Game Center not authentication using Swift,因为这样做的“Swift 方式”对我也不起作用。
我还通过本地 WiFi 在两个设备上运行 Spelltower,所以看起来硬件运行正常。知道这里可能出了什么问题吗?
ios8 - GKMatchRequest 什么时候会“无效”?
偶尔但并非很少,findMatchForRequest:withCompletionHandler:
返回错误 13 或GKErrorMatchRequestInvalid
:“请求的操作无法完成,因为匹配请求无效。”
文档只说:
GKErrorMatchRequest 无效
无法满足匹配请求的属性。例如,最小玩家数不能大于最大玩家数。在 iOS 4.0 及更高版本中可用。
我认为这GKErrorMatchRequestInvalid
永远不会发生在第一次尝试,即直接从 Xcode 启动后,但仅在第 2/3/... 次尝试时发生。发生在设备或模拟器上。所以我假设我做错了什么,但是什么?是否有详尽GKMatchRequest
的无效条件清单?
试图GKErrorMatchRequestInvalid
通过调用来恢复findMatchForRequest:
,但从未成功:一旦我得到一个 'invalid' match
,那么所有进一步findMatchForRequest:
的调用也会返回一个 'invalid'match
。试图通过同时使用[[GKMatchmaker sharedMatchmaker] cancel]
和来解决这个问题[[GKMatchmaker sharedMatchmaker] finishMatchmakingForMatch:
......显然,我什至没有有效match
的 to finishMatchmakingFor:
。
配对发生在单例中(如果重要的话)。以下是相关代码:
ios - 程序化 GKMatchmaker 未找到其他玩家
我一直在努力尝试实现我自己的 GKMatchmaker 接口(没有 GKMatchmakerViewController)。我有一个单独的 GameKitHelper 类,如 Ray Wenderlich 教程中所写,它实现了 GKMatchDelegate 和 GKLocalPlayerListener。当我使用 GKMatchmakerViewController 时,我的邀请和随机匹配工作完美无缺。但是,我尝试切换到我自己的视图控制器,该控制器通过单击按钮触发“findMatchWithminPlayers(....)”,如下所示,它创建了一个共享的 GKMatchmaker 来执行“findMatchForRequest(... withCompletionHandler:. ..)”。我有几个 println()s 测试某些值,但每次 match.expectedPlayerCount 永远不会达到 0,只是停留在 1。这意味着“如果 matchStarted == false 和 match.expectedPlayersCount == 0” 永远不会满足,并且永远不会调用/匹配的 lookupPlayers() 方法无法启动。这是通过单击按钮调用的第一个方法:
这是 GKMatchDelegate 的玩家状态更改方法,当玩家连接时应该调用它:
如果您能找到问题,请告诉我,我将不胜感激。我目前正在玩两种可能性:我需要在某个地方仅在一场比赛中创建一场比赛,而另一台设备使用几种不同的方法加入该比赛......或者我需要实现 addPlayersToMatch(...) 和 finishedMatchmaking( ...) 某处的方法。提前致谢!
ios - 在 Game Center 上找不到玩家。我测试我的游戏错了吗?
我在 Xcode 模拟器和我的 iPhone 上运行游戏。当我点击搜索时,它们都被放入单独的游戏中,而不是一个玩家加入现有的游戏。这是一款回合制游戏,玩家可以在 Game Center 自动运行时进行第一次回合。我正在使用两个单独的 Game Center 帐户,并启用了沙盒设置。知道我可能做错了什么吗?对于那些开发了支持 Game Center 的游戏的人,你们是如何测试它的?谢谢您的帮助!
一些代码:
ios - 在 Swift 中设置 GKMatchmakerViewControllerDelegate 时出现错误?
我想viewController
为我的游戏设置匹配。为此,我将GKMatchmakerViewControllerDelegate
委托添加到我的 mainUIViewController
中Home
,使其看起来像:
要加载配对界面,我使用以下代码:
class Home: ...
但是,当我尝试运行代码时,我收到以下错误。错误消息说:
为什么会这样?