2016-08-18 5 views
2

私はGame Centerで最初のTurn Basedゲームを実装しています。通知を受け取った人を理解するのは難しいです。 player(_:wantsToQuitMatch:)プレーヤー(_:wantsToQuitMatch :)はいつ呼び出されますか?

(ゲーム中止の方法によって)終了しているプレイヤーは、この通知を受け取りますか?現在のプレーヤーが終了すると、他のプレイヤーは通知を受け取りますか?現在のプレイヤーがGame Center内で終了する(ゲームを削除する)とどうなりますか?

ゲームセンターでゲームを削除しようとしましたが、それが自分のターンであり、ゲーム内のプレイヤーのためにメソッドがトリガーされません。私はその方法を誘発することができません。

答えて

1

GKTurnBasedMatchで数年間働いた後、私はを持っていません。を見ました。wantsToQuitMatchを見ました。決して。一度もありません。

(大規模にオーバーロードされた)機能receivedTurnEventForMatchは、プレイヤーが参加または離席するときに発動する唯一の機能です。 (それぞれの機能が起動するタイミングの詳細については、私の答え、https://stackoverflow.com/a/34458493/1641444を参照してください)。 receivedTurnEventForMatchが多くの相違点の状況で発火し、それがどれをトリガーしたかを解読するために残しているので、それは痛みです。

これはあなたの質問ではありませんでしたが、ターンベースのマッチで始まったばかりなので、まだあまり投資していない場合は、今年WWDCで発表された新しいGKGameSessionを検討することをお勧めします。 GKTurnBasedMatchには、ゲームを孤立させる(プレイヤーが続けることはできない)という制約があります。私は自分自身のゲームセッションを調べ始めるところです。しかし、一目見ただけではるかに大きなコントロールと、より大きなマッチデータオブジェクト(512kB対64kB)を提供します。

+0

ありがとうございました。私はGKGameSessionを見ていきます。 – coopersita

+0

WWDCセッションを確認したところ、いくつか質問があります。 GKGameSessionはiOS 10以上でのみご利用いただけますか?私はまだiOS 8+をサポートしたいと思います。あなたはGKGameSessionが最終的にGKTurnBasedMatchを置き換えると思いますか?はるかに良く見えますが、私は怠惰で、すでにアプリケーションの良い部分をコーディングしています(ホビーアプリですので、コードを書き換えて、締め切りする必要はありません) – coopersita

+0

ゲームセッションはios10 +のようです。ターンベースのマッチがあなたのために働いている場合、それは変更する価値がないかもしれません。私はターンベースの試合で本当に悪い経験をしていたので、私は移動したいです。 IOS 10を実行できない32ビットデバイスを失うことを意味するにもかかわらず。 – Thunk

0

ゲームセンターのビューを呼び出して、私が現在入っているゲームをタップして、そのゲームを "偽造"しようとすると、私はplayer(_:wantsToQuitMatch:)を見ています。私はそれが発射するのを見ている間、私はまだそれと何をするのか分からない。現在、私は何もしておらず、プレーヤーはゲームから抜け出すことはありません。

関連する問題