gpt4 book ai didi

ios - 如何实际启动 GKTurnBasedMatch 以便我可以发送交换?

转载 作者:行者123 更新时间:2023-11-29 11:48:23 26 4
gpt4 key购买 nike

我正在尝试向 GKTurnBasedMatch 中的另一个玩家发送交换。当我发送它时,我的完成处理程序收到一条大错误消息,其中包含以下描述:

The requested operation could not be completed because the session is in an invalid state.
Game is not active, session state is Matching

我希望比赛在只有两名玩家时开始,但总共允许 16 名玩家。所以我很自然地设置了 maxPlayers = 16minPlayers = 2。我原以为一旦两名玩家就座,比赛就会自动开始,但事实并非如此。

一旦比赛有两名球员,我就尝试这样做:

    if match.participants?.count == 2 {
match.status = GKTurnBasedMatchStatus.open
}

但是后来我被告知status 是只读的。我无法手动设置它。

现在,使用常规 GKMatch,我通过调用以下命令正式开始匹配:

GKMatchmaker.shared().finishMatchmaking(for: match)

但是 GKTurnBasedMatch 似乎没有类似的东西。

我如何真正开始比赛,以便我可以在两位玩家之间发送交换信息?

最佳答案

伙计,关于GKTurnBasedMatch 的文档稀少。

事情是这样的:您实际上并没有显式地启动 GKTurnBasedMatch。您只是结束它是明确的。

在游戏过程中,您只需将回合从一位活跃玩家传递给另一位活跃玩家。从技术上讲,只要第一位玩家就座,游戏就会开始。

我遇到的问题是我在没有其他活跃玩家的情况下通过了回合。所以我不小心告诉 Game Center 将转弯分配给一个空座位。所以当错误信息告诉我的时候

Game is not active, session state is Matching

这意味着当前座位是空的并且仍在寻找玩家来填补它。只要当前玩家的状态为 Matching(表示空位),游戏显然就会退出事件状态。

为什么这会影响发送交换,其全部目的是使任何玩家之间能够进行通信,无论当前玩家是谁,我都无法理解。但是你去吧。

解决方案:确保当前轮次由真人持有,而不是空位。然后就可以发送交流了。否则你不能。

关于ios - 如何实际启动 GKTurnBasedMatch 以便我可以发送交换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42302699/

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