cocos2dx cast值为属性字符串

时间:2017-08-14 03:32:27

标签: c++ properties cocos2d-x tiled

我在平铺地图编辑器中将属性定义为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();

但这也不是正确的。

1 个答案:

答案 0 :(得分:0)

我想出来了

我应该用这个

std::string type = tag.asString().c_str();

转换为最终字符串,不确定.c_str()是什么,但它有效。 我们应该把它放在这里帮助一个人遇到同样的问题。