我在平铺地图编辑器中将属性定义为tag
,以及在cocos2dx中检索该属性
我是这样做的:
for (int h=0; h< size.height; h++){
for (int w=0;w<size.width; w++){
auto sprite = layer->tileAt(Vec2(w,h));
auto gid = layer->getTileGIDAt(Vec2(w,h));
Value v = tmap->getPropertiesForGID(gid);
ValueMap m = v.asValueMap();
auto tag = m.at("tag");
if (!tag.isNull()) {
CCLOG(" tag string is %s", tag.asString());
}
}
}
我希望输出类似于blue, gray, black....
,这是我在平铺精灵的属性中添加的标记,但实际上输出是这样的:
tag string is ?SEgray
而不是
tag string is gray
有些事情 我也试过这个:
tag.asString();
但这也不是正确的。
答案 0 :(得分:0)
我想出来了
我应该用这个
std::string type = tag.asString().c_str();
转换为最终字符串,不确定.c_str()
是什么,但它有效。
我们应该把它放在这里帮助一个人遇到同样的问题。