刚开始使用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());
...
它返回空白。我在这里错过了什么?除了代码不起作用之外,真正让我质疑的是我不理解属性的机制。你如何拥有多个自定义属性,因为你没有为它分配任何类型的索引...或者房间在任何给定时间只有一个自定义属性?
答案 0 :(得分:2)
您不需要使用customData,而只使用房间属性。房间属性是一组您可以与房间相关联的键/值对。
我建议您阅读以下链接 http://appwarp.shephertz.com/game-development-center/matchmaking-basic-concept/
所以流程如下 -
首先使用createRoom API创建房间并传递一个 属性字典包含<“closed”,“false”>。
然后,一旦游戏处于活动状态,您就可以使用updateRoomProperties API 在房间和通过<“关闭”,“真实”>到API。
然后,当您想要显示您应该使用的列表时 getRoomWithProperties并传递<“关闭”,“false”>。这会得到 你是一个尚未“关闭”的房间清单。