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:メソッドは、ゲームの表示と一致するで作業するためのカスタムユーザーインターフェイス
を提供できるようにするために存在しています。 姉妹サイトだよ! よかったらみてね!
スポンサーサイト

GKTurnBasedParticipant メモ

GKTurnBasedParticipant メモ

概要
ターンベースのマッチの参加者のGKTurnBasedParticipantオブジェクト情報が格納されます。
あなたのゲームは、直接このクラスのオブジェクトを作成することはありません。代わりにGKTurnBasedMatch
オブジェクトからGKTurnBasedParticipantオブジェクトの配列を取得します。
GKTurnBasedParticipantオブジェクトによって格納されているほとんどの情報は読み取り専用されており、
ゲームのロジックを実装するのに役立つゲーム·キットで提供されています。しかし、matchOutcomeプロパティ
は非常に重要です。あなたのゲームは試合を終了することができる前に、それがマッチに関連付けられているすべて
のGKTurnBasedParticipantオブジェクトにmatchOutcomeプロパティを設定する必要があります。 姉妹サイトだよ! よかったらみてね!

GKVoiceChat メモ

GKVoiceChat メモ

概要
GKVoiceChatオブジェクトは、試合での選手のセットは互いに話すことができる音声チャネルを提供します。
あなたがボイスチャットを使用する前に、iOSのゲームでは、あなたのゲームがプレイと録画
(kAudioSessionCategory_PlayAndRecord)の両方を可能にするオーディオセッションを設定する
必要があります。オーディオセッションの詳細については、オーディオセッションプログラミングガイドを参照してください。
GKVoiceChatオブジェクトが直接あなたのゲームによって作成されることはありません。GKMatchオブジェクトがユーザーに
代わって音声チャネルを作成します。参加したいチャンネルの名前を識別する文字列を渡して、オブジェクト:チャネルを確立す
るために、GKMatchオブジェクトのvoiceChatWithName呼び出します。 voiceChatWithNameは:自動解放GKVoiceChatオ
ブジェクトを返します。名前はゲームキットによってユーザーに表示されません、あなたはしかし、あなたが好きなチャンネルに
名前を付けて自由であることはされています。各プレイヤーは複数のチャネルに参加することができます。マッチは複数のチーム
を持っている場合たとえば、各チームごとに個別のチャネル、およびマッチの選手のすべてを保持している追加のチャネルを作成
することができます。
チャネルに接続するには、ボイスチャットオブジェクトのstartメソッドを呼び出します。チャネルが開始された後に、それは
他のプレイヤーからの音声データを受信します。プレイヤーは、チャネルの他のメンバーに話すようにするには、YESにボイスチ
ャットオブジェクトのアクティブなプロパティを設定します。プレイヤーが同時に複数のGKVoiceChatオブジェクトに耳を傾ける
ことができますが、1つだけボイスチャット·オブジェクトは、任意の時点でマイクを試すことができます。
forPlayer:選択して、チャネル内の他のプレーヤーをミュートする方法あなたのゲームは、全体のチャンネルの音量レベル、
およびに対してsetMuteを設定するには、ボリュームのプロパティを使用します。
ボイスチャットを維持するためにWi-Fi経由で十分な帯域幅がある場合は、GKVoiceChatオブジェクトは、チャネルから個々の
プレーヤーを切断したり、完全にチャネルを解散することができます。 姉妹サイトだよ! よかったらみてね!

スマホニュース 20120727

「I Love You」はペン入力でこそ伝わる、モバイルUI開発の今を聞く

情報セキュリティ資格だけで転職や昇進ができるか

ソフトバンクモバイル、「プラチナバンド」エリア拡充情報の日次公開を開始

キスの感触をデータ化、遠くのパートナーに送れる――「Kissenger」

クロネコのクラウドは機動性と強靭さを重視

デジタル変換時の波形を うまく見るためのポイント 姉妹サイトだよ! よかったらみてね!
twitter
twitter アカウント @drum_kuroneko 気軽にフォローしてください。
誰でも簡単に開発ができます!!
人気ナンバー1
自己紹介

yuutyan0205

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

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

仕事ください・・・

開発者アプリ一覧 気になったらダウンロードしてください。
開発環境おすすめ
カレンダー
06 | 2012/07 | 08
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 31 - - - -
最新記事
月別アーカイブ
カテゴリ
アクセスランキング
[ジャンルランキング]
コンピュータ
904位
アクセスランキングを見る>>

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

全ての記事を表示する

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

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