Я определил свойство как 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();
Но это тоже не так.
Я понял это
Я должен использовать это
std::string type = tag.asString().c_str();
бросить в последнюю строку, не уверен, что .c_str()
есть, но это сработало.
Мысль должна поместить это здесь, чтобы помочь кому-то встретиться с той же самой проблемой.
Других решений пока нет …