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());
...

它返回空白。我在这里想念什么?除了代码不起作用之外,真正让我质疑自己的是我不了解属性的机制。由于您没有为它分配任何类型的索引,您如何拥有多个自定义属性......或者房间在任何给定时间只有一个自定义属性?

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 回答