我想根据Cocos2d-x和C ++中的一些动态变量更改精灵图像,所以我试试这样的事情,但是有一个错误。这可能是一种正确的方法吗?问候。
auto name = String::createWithFormat("x%i.png", _destroyedUnits);
auto combo = Sprite::createWithSpriteFrameName(name);
我已经看到createWithSpriteFrameName接受C ++ basic_string,而不是Cocos String,所以我创建了这样的输出是"名称是:??"
int _destroyedUnits = 20;
std::string intToString = std::to_string(_destroyedUnits);
std::string name("x" + intToString);
CCLOG("The name is: %s", name);
做正确的方法是什么?问候。
答案 0 :(得分:1)
正如cocos2d-x测试中所建议的,正确的方法是使用sprintf,你可以像这样使用它:
char tmp[30];
sprintf(tmp,"x%i.png", _destroyedUnits);
std::string atlasName = tmp;
auto combo = Sprite::createWithSpriteFrameName(atlasName.c_str());
答案 1 :(得分:0)
我已经看到createWithSpriteFrameName接受C ++ basic_string,而不是Cocos String,所以方法是使用string而不是String类。
int _destroyedUnits = 4;
std::string intToString = std::to_string(_destroyedUnits);
std::string name("x" + intToString + ".png");
auto combo = Sprite::createWithSpriteFrameName(name);
问候。