gpt4 book ai didi

ios - 一些 startBrowsingForNearbyPlayersWithReachableHandler 的问题

转载 作者:可可西里 更新时间:2023-11-01 04:41:59 24 4
gpt4 key购买 nike

我正在尝试使用 [[GKMatchmaker sharedMatchmaker] startBrowsingForNearbyPlayersWithReachableHandler:] 在 GameKit 中进行本地配对。本质上,我正在尝试实现无界面的本地比赛:只要附近有玩家,我就想连接并开始比赛。重要的是,我想为本地玩家做这件事:我从不想通过互联网自动匹配。

我在 iTunes 连接中为我的应用程序启用了游戏中心,并在我用来测试的每台设备上注册了不同的沙盒帐户。

我已经尝试过使用 GKMatchmakerViewController 进行匹配(在对本地玩家进行身份验证之后)和使用 startBrowsingForNearbyPlayersWithReachableHandler: 进行编程匹配,在 iPhone 4 和 iPhone 4 上运行相同的代码iPod Touch 并排坐在我的办公 table 上。两者都找不到对方;使用 GKMatchmakerViewController 时,寻找附近玩家的界面仍然在

Finding Players...

微调器,并且在使用 startBrowsingForNearbyPlayersWithReachableHandler: 时,永远不会调用通知 block 。

这是我当前的测试代码块:

-(void)connectLocal
{
if( ![GKLocalPlayer localPlayer].isAuthenticated )
{
// authenticateLocalPlayer calls connectLocal again after authentication is complete
[ self authenticateLocalPlayer ];
return;
}
[[GKMatchmaker sharedMatchmaker] startBrowsingForNearbyPlayersWithReachableHandler:^(NSString *playerID, BOOL reachable) {
NSLog(@"Reachability changed for player %@", playerID );
} ];
}

关于这个主题的文档有点稀疏和困惑,尤其是当涉及到本地多人游戏和互联网比赛之间的区别时。例如,似乎有必要对本地玩家进行身份验证并在找到玩家加入比赛之前创建比赛(Creating Any Kind of Match Starts with a Match Request)。然而this little nugget似乎另有建议:

The standard user interface allows players to discover other nearby players, even when neither player is currently connected to Game Center directly.

此外,在 Searching For Nearby Players 中描述的流程中,直到第 3 步才会创建匹配请求,通过传递给 startBrowsingForNearbyPlayersWithReachableHandler: 的通知 block 找到玩家之后。不幸的是,我从来没有走到那一步。

那么,问题:

1) 我认为我可以在验证本地播放器之前调用 startBrowsingForNearbyPlayersWithReachableHandler: 是否正确? GameKit 不会抛出错误,所以我假设它没问题。这可能是一个轻率的假设。我是否进行身份验证似乎没有太大区别。

2) 是否有人使用 [GKMatchmaker sharedMatchmaker] startBrowsingForNearbyPlayersWithReachableHandler: 成功实现了本地自动匹配?是否有很好的示例代码可以说明完整的流程,从浏览玩家到开始比赛,全部以编程方式进行?

3) 关于是否可以在 iOS 模拟器中测试支持 GameKit 的应用程序,网络上似乎存在相互矛盾的报道。普遍的共识似乎不是,最好在 iOS 硬件上进行测试。我一直在使用 iPhone 4 和第 4 代 iPod Touch。对于那些成功测试本地多人游戏的人,您使用了什么测试设置和方法?

最佳答案

1) Am I right in thinking I can call startBrowsingForNearbyPlayersWithReachableHandler: before authenticating the local player?

没有。 startBrowsingForNearbyPlayersWithReachableHandler 通过广告现有玩家和浏览其他玩家来工作,但最重要的是,它用来识别玩家的信息是 playerID...在玩家验证之前可用。

3) There seem to be conflicting reports on the web over whether GameKit-enabled apps can be tested in the iOS Simulator. General consensus seems not, and it's better to test on iOS hardware

GameCenter 身份验证、成就和排行榜在模拟器中运行,其他一切都应在真实硬件上进行测试。我实际上推荐使用模拟器进行身份验证测试,因为它避免了沙箱/生产开关,这会使设备上的详细身份验证测试有些困惑。其他一切只能在设备上进行测试。模拟器对接收推送通知没有很好的支持,这会破坏匹配设置,而且一般的硬件配置差异很大,匹配通信不太可能正常工作。

关于ios - 一些 startBrowsingForNearbyPlayersWithReachableHandler 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18108446/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com