菜鸟教程小白 发表于 2022-12-11 18:45:44

ios - 回合制配对在 iOS 10 中不起作用


                                            <p><p>我的游戏在 iOS 10 之前运行良好。现在,使用 iOS 10 的每个人都无法邀请和玩他们想要的人。</p>

<p>当用户说他们想玩多人游戏时,我会创建一个 <code>GKMatchRequest</code>,如下所示:</p>

<pre><code>GKMatchRequest *request = [ init];
request.minPlayers = 2;
request.maxPlayers = 4;
request.defaultNumberOfPlayers = 2;
</code></pre>

<p>我使用 <code>GKTurnBasedMatchmakerViewController</code> 来处理邀请等。用户会看到一个界面,可以让他们更改比赛中的玩家数量并邀请玩家。假设他们只想要 2 个玩家,所以他们离开了,想和他们的 friend 一起玩。因此,他们使用该界面向他们的 friend 发送邀请。结果是 <code>didFindMatch</code> 在我的委托(delegate)上被调用,其中 <code>GKMatch</code> 有 4 个参与者。它应该只有2个!第一个参与者是本地玩家,其他 3 人的状态为“匹配”。所以,他们的 friend 甚至不在名单上。有没有人有任何解决这个问题的建议?同样的代码在 iOS 10 之前的 iOS 版本中运行良好。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>似乎在 IOS10 中,defaultNumberOfPlayers 没有得到遵守。</p>

<p>请记住,<code>GKTurnBasedMatch</code> 在给定比赛中具有三种类型的玩家:</p>

<ul>
<li>创建匹配的发起者</li>
<li>受邀参加比赛的球员</li>
<li>自动匹配到比赛中的球员</li>
</ul>

<p>如果您查看比赛中所有 4 名球员的球员状态(使用您的示例),我怀疑您会看到以下结果</p>

<ol>
<li>主动(发起者)</li>
<li>已邀请(您邀请的 1 人)</li>
<li>匹配</li>
<li>匹配</li>
</ol>

<p>如果是这样,则表明 <code>defaultNumberOfPlayers</code> 已被忽略,并且创建的比赛最多包含 4 名玩家(1 个发起者、1 个被邀请者和 2 个自动匹配位置)。</p>

<p>解决方法似乎是在创建比赛时将 <code>maxNumberOfPlayers</code> 设置为所需的上限,在本例中为 2。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 回合制配对在 iOS 10 中不起作用,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/41916413/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/41916413/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 回合制配对在 iOS 10 中不起作用