0

Appwarps でコーディングを始めたところ、問題が発生しています。ライブ ルームを表示するロビーを構築しましたが、すでに開始されている試合のルームを表示したくありません。使うと思った

void Client::setCustomRoomData(std::string roomId, std::string customData)

ただ、使い方に疑問があります。ゲームが始まったら、送信する予定です

SetCustomRoomData(roomId, "Closed");

開いている座席が閉じられたことをサーバーに通知します。ただし、呼び出し時に別のデバイスで部屋のプロパティを確認すると

void CCAppwarpDelegate::onGetLiveRoomInfoDone(AppWarp::liveroom revent)
{
CCLog("CustomData=%s",revent.customData.c_str());
...

空白を返します。ここで何が欠けていますか?コードが機能しないことに加えて、自分自身に本当に疑問を抱かせるのは、プロパティの仕組みを理解していないことです。どのような種類のインデックスも割り当てていないので、どのように複数のカスタム プロパティを持っていますか? または、部屋には常に 1 つのカスタム プロパティしかありませんか?

4

1 に答える 1

2

customData を使用する必要はなく、代わりにルーム プロパティのみを使用します。ルーム プロパティは、ルームに関連付けることができる一連のキーと値のペアです。

次のリンクを読むことをお勧めします http://appwarp.shephertz.com/game-development-center/matchmaking-basic-concept/

したがって、流れは次のとおりです-

  1. 最初に createRoom API を使用してルームを作成し、<"closed", "false"> を含むプロパティ ディクショナリを渡します。

  2. 次に、ゲームがアクティブになったら、ルームで updateRoomProperties API を使用し、<"closed", "true"> を API に渡します。

  3. 次に、リストを表示する場合は、getRoomWithProperties を使用して <"closed", "false"> を渡す必要があります。これにより、まだ「閉鎖」されていない部屋のリストが取得されます。

于 2014-01-28T19:48:06.127 に答える