FC2ブログ

GKTurnBasedMatch メモ

GKTurnBasedMatch メモ

概要
GKTurnBasedMatchクラスは、ゲームがゲームセンターの選手のセット間のターンベースのマッチを実装することができます。
ターンベースの一致は、参加者間でデータを共有するストアアンドフォワードのアプローチを使用します。マッチの新しい状態
を定義し、試合の次の行動するプレイヤーゲームセンターを伝えゲームセンターへのマッチに参加するプレイヤーがマッチの状態
を進めるためのアクションを実行し、ゲームがデータをアップロードします。その後、次のプレイヤーがゲームを起動したときに
、それがゲームセンターから一致データをダウンロードして試合を続けています。プレーヤーは、試合が終了するまで
(あなたのゲームが実装内部なロジックに基づいて)演技交代を続けています。ターンベースのマッチの重要な利点は、
プレイヤーが同時に複数の試合に参加するかもしれないということです。

Important
任意のゲームセンターのクラスを使用する前にゲームはローカルプレーヤーを認証する必要があります。ない認証されたプ
レイヤーが存在しない場合、ゲームはGKErrorNotAuthenticatedエラーを受け取ります。認証の詳細については、ゲームキット
プログラミングガイドを参照してください。

試合は常にゲームセンターによって認識されている既存の一致を表しているのであなたのゲームは、直接、GKTurnBasedMatch
オブジェクトを作成することはありません。代わりに、マッチオブジェクトは、ゲームキットであなたのゲームのために作成されます。
Matchオブジェクトは、新しく作成されたマッチ(まだ開始されていないマッチの場合)、またはすでに進行中である一致を保持
することができます。ここにあなたのゲームはMatchオブジェクトを取得する方法は次のとおりです。
・プレイヤーはターンベースのマッチのための標準のユーザーインターフェイスを表示できるようにするには、
GKTurnBasedMatchmakerViewControllerクラスを使用します。 OS X上で、GKTurnBasedMatchmakerPanelを
使用しています。
・withCompletionHandler:クラスメソッドのプレイヤーが参加するプログラムで新しい一致を検索するには、
findMatchForRequestを呼び出します。
・クラスメソッド:プログラムでローカルプレイヤーが既に参加しているマッチの一致オブジェクトのコレクションをロードするためには、
loadMatchesWithCompletionHandlerを呼び出します。
・試合はターンを取るためのローカルプレーヤーを必要とする場合に通知を受け取るためには、GKTurnBasedEventHandlerシングルトン
オブジェクトにデリゲートをアタッチします。ゲームキットには、Matchオブジェクトを使用してデリゲートを呼び出します。

Matchオブジェクトは、いくつかの重要なプロパティが含まれています。

・参加者プロパティは、GKTurnBasedParticipantオブジェクトの配列を提供しています。そのプレイヤーの現在の状態と一緒にマッチ
の各識別子は、プレーヤー。
・currentParticipantプロパティは、一致の状態を進めるために行動することが期待されている現在のプレーヤーのための
GKTurnBasedParticipantオブジェクトが含まれています。
matchDataプロパティは、マッチの現在の状態を記述するバイナリデータを保持します。このオブジェクトに含まれるデータの形式は
、あなたのゲームを作成するときに設計ものです。ゲームキットのみを格納し、このデータの転送を管理します。・

プレイヤーは特定の一致を表示したときに、あなたのゲームはマッチオブジェクトを受け取り、その
loadMatchDataWithCompletionHandler呼び出す必要があります:マッチデータを取得する方法を。一致するデータがゲーム
センターからダウンロードされた後、ゲームのデータを解析し、プレイヤーにゲームのユーザーインターフェイスを表示するために
それを使用します。他のプレイヤーが現在のプレーヤーの場合でも、プレイヤーがマッチの状態を見てもよい、あなたのゲームは、
これを期待すると、プレイヤーはマッチの状態を表示できるようにする必要があります。しかし、現在のプレーヤーがマッチを表示
したときに、あなたのゲームは両方のそれらのマッチの状態を表示し、プレイヤーがターンを取ることを許可するユーザー·インタ
ーフェースを提供する必要があります。現在のプレイヤーがターンを取るときに、プレイヤーがマッチの状態を変更するつまたは
複数のアクションを実行します。これらのアクションは、ゲームのルールの内部ロジックに基づいています。現在のプレーヤーは、
彼または彼女は試合を進めるために行動する試合で他の人が必要なアクションを行うまで行動し続けています。たとえば、チェス
のようなゲームで、ボード上のピースを移動し、他の参加者に制御を渡すと同時に起こる。より複雑なゲームではマッチは他の
プレイヤーに割譲されたコントロールの状態に到達する前に、現在のプレーヤーが複数のアクションを取ることを許すかもしれま
せん。

試合は別のプレイヤーが行動する必要があります状態に到達した後、あなたのゲームは、プレイヤーが次に行動する必要があるか
を決定する必要があります。その後、NSDataオブジェクトにマッチの状態をエンコードする必要があり、一致オブジェクトの
endTurnWithNextParticipantコール:行動する、次のプレイヤーとエンコードされたデータオブジェクトに対して
GKTurnBasedParticipantオブジェクトを渡し、メソッド:matchData:completionHandler。次のプレイヤーは自動的に
試合が試合を続行するために、彼または彼女の行動を待っていることが通知されます。

試合が進むにつれて、プレイヤーは試合を残すことができます。あなたのゲームは、このプレーヤーがマッチから排除されている
と判断した場合たとえば、このような状況が発生する可能性があります。またはあなたのゲームは、プレイヤーがマッチ辞職を許可
するユーザー·インターフェースを提供するかもしれない。 nextParticipant:matchData:completionHandler:メソッド
のローカルプレーヤーがマッチから辞職し、また、マッチの現在のプレーヤーであれば、あなたのゲームはマッチオブジェクトの
participantQuitInTurnWithOutcome呼び出す必要があります。プレイヤーがターンを取るときと同じように、あなたのゲー
ムはマッチの状態と動作するように次のプレイヤーに渡します。本質的に、そのプレイヤーは試合を残した理由を示す数値 - あな
たのゲームはまた、マッチの結果を提供します。選手が試合を残すようにする方法:withCompletionHandler:あなたのゲームは、
それがそのプレイヤーのターンでないときに選手が試合で辞任することができたら、ゲームはマッチオブジェクト
のparticipantQuitOutOfTurnWithOutcomeを呼び出します。

結局、試合は終了します。 completionHandler:メソッドあなたのゲームロジックは試合が終了すべきことを指示すると、
ゲームはマッチオブジェクトのendMatchInTurnWithMatchDataを呼び出します。あなたのゲームは、マッチのすべての参加者
が一致を終了する前に、有効な照合結果を持っていることを確認する必要があります。

さらに試合終了後、そのデータはまだゲームセンターに保存されているが、これはプレイヤーが前の勝利を表示することができます
し、敗北。プレイヤーは、標準のユーザーインターフェイスを使用して一致するものを削除を選択するかもしれませんが、あなたの
ゲームはまた、プログラムで一致するオブジェクトのremoveWithCompletionHandler呼び出して一致するものを削除することが
できます:メソッド。すべてのケースで、マッチを削除するかどうかの決定は、プレイヤーによって行われるべきである。
removeWithCompletionHandler:メソッドは、ゲームの表示と一致するで作業するためのカスタムユーザーインターフェイス
を提供できるようにするために存在しています。
スポンサーサイト
姉妹サイトだよ! よかったらみてね!

コメントの投稿

非公開コメント

twitter
twitter アカウント @drum_kuroneko 気軽にフォローしてください。
誰でも簡単に開発ができます!!
人気ナンバー1
自己紹介

yuutyan0205

プロガー:yuutyan0205
きままな自由人です。

たまにプログラミングを行っています。

仕事ください・・・

開発者アプリ一覧 気になったらダウンロードしてください。
開発環境おすすめ
カレンダー
10 | 2018/11 | 12
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
最新記事
月別アーカイブ
カテゴリ
アクセスランキング
[ジャンルランキング]
コンピュータ
1051位
アクセスランキングを見る>>

[サブジャンルランキング]
マック
50位
アクセスランキングを見る>>
訪問者数
現在の訪問者数
現在の閲覧者数:
全記事表示リンク

全ての記事を表示する

相互リンク希望の方とご質問ある方ご連絡ください。

名前:
メール:
件名:
本文: