1

ボード戦略ゲームをやっています。問題は、接続されたプレイヤーがコンボボックス (エイジ オブ エンパイア 2 と同様) で自分の色を選択し、ホストがゲームを開始するまで話すことができる以前のルーム チャットを行ったことです。

問題は、他のプレイヤーの GUI を更新して、プレイヤー X が赤を選択したことを示す方法がわからないことです。

私はすでにゲームの作成者 (ホスト) とクライアントを接続しており、コンソールから相互にメッセージを送信できます。しかし、単純なコンボボックスからの変更後に両方の GUI を更新する方法が本当にわかりません。

プレイヤー 2 が自分の色を緑に設定した場合

次に、他のプレイヤーの GUI で緑色に表示される必要がありますが、その方法がわかりません。

4

3 に答える 3

1

Observer design patternを実装してみてください。

于 2013-02-27T15:01:26.847 に答える
1

コンボボックスにリスナーを追加する必要があります。リスナーは特別なメッセージ (コマンド) を色 ("playerColorChanged #00ff00" のようなもの) と共にホストに送信する必要があり、ホストはそれを他のすべてのクライアントに配布する必要があります (さらにソース プレイヤー名/ID を追加します)。クライアントはそれに応じて GUI を更新する必要があります。

あなたのコードはわかりませんが、そのような「システム メッセージ」を送信するには、おそらくクライアントとホスト間の現在の通信プロトコルを更新する必要があります。

于 2013-02-27T15:00:38.907 に答える
0

クライアント/サーバー プロトコルの記述方法に応じて、さまざまなメッセージ タイプを送信する何らかの方法が必要です。各クライアントに特定のメッセージ タイプをサーバーに送信させて、プレイヤーが色を選択したことを通知し、それを他のすべてのクライアントに転送します。これらの各クライアントは、そのメッセージを受信すると、関連する UI インジケーターを変更します。

(このアプローチは、ピアツーピア プロトコルと同様です。)

于 2013-02-27T15:06:11.713 に答える