2016-08-18 20 views
2

我正在实施我的第一个使用Game Center的Turn Based游戏,并且我很难理解谁收到来自 player(_:wantsToQuitMatch:)的通知。什么时候播放器(_:wantsToQuitMatch :)被调用?

当前正在退出的玩家(通过某种游戏中的退出方法)是否获取了此通知?当前玩家退出时,其他玩家是否会收到通知?如果当前玩家从Game Center中退出(移除游戏)会发生什么?

我试过在游戏中心移除一个游戏,当轮到我时,并且该方法不会触发游戏中的玩家。我无法触发该方法。

回答

1

经过GKTurnBasedMatch多年的工作,我有从来没有看到wantsToQuitMatch火灾。决不。不止一次。

(大量超载)功能,receivedTurnEventForMatch是玩家加入或离开时唯一会触发的功能。 (有关每个函数何时触发的更多信息,请参阅我的回答,网址为https://stackoverflow.com/a/34458493/1641444)。这是一种痛苦,因为receivedTurnEventForMatch在许多不同情况下都会发生,并且由您来解密哪一个触发了它。

这不是你的问题,但是如果你刚刚开始进行基于回合的比赛,如果你还没有投入太多,我建议你考虑今年在WWDC上宣布的新GKGameSessionGKTurnBasedMatch有许多限制,可能导致游戏滞留(不能由任何玩家继续)。我刚刚开始自己​​研究游戏会议;然而,乍一看,它们给了你更多的控制权,以及更大的匹配数据对象(512kB vs 64kB)。

+0

谢谢。我会看看GKGameSession。 – coopersita

+0

我刚刚检查了WWDC会议,并且有几个问题。 GKGameSession只适用于iOS 10+吗?我想仍然支持iOS 8+。你认为GKGameSession最终会取代GKTurnBasedMatch吗?看起来好多了,但我很懒,并且已经编写了我应用程序的很大一部分(这是一个业余爱好程序,所以需要我可以重新编码,没有截止日期) – coopersita

+0

游戏会话看起来是ios10 +。如果回合制比赛正在为你工作,那么它可能不值得改变。我在回合比赛中遇到了很糟糕的经历,所以我很想动。即使这意味着丢失了无法运行IOS 10的32位设备。 – Thunk

0

我看到player(_:wantsToQuitMatch:)当我调用GameCenter视图并点击游戏时,我正在进行游戏并尝试“放弃”该游戏。虽然我确实看到了它的火焰,但我不确定如何处理它。目前我什么也没做,球员也没有退出比赛。

相关问题