如何通过 createWithSpriteFrameName 使用动态精灵名称?

How to use dynamic sprite names with createWithSpriteFrameName?

我想根据 Cocos2d-x 和 C++ 中的一些动态变量更改精灵图像,所以我正在尝试类似的操作,但出现错误。什么是正确的方法呢?你好。

auto name = String::createWithFormat("x%i.png", _destroyedUnits);
auto combo = Sprite::createWithSpriteFrameName(name);

我看到 createWithSpriteFrameName 接受 C++ basic_string,而不是 Cocos 字符串,所以我这样创建,输出是 "The name is: ??"

int _destroyedUnits = 20;
std::string intToString = std::to_string(_destroyedUnits);
std::string name("x" + intToString);
CCLOG("The name is: %s", name);

正确的做法是什么?你好。

我看到 createWithSpriteFrameName 接受 C++ basic_string,而不是 Cocos 字符串,所以方法是使用字符串而不是字符串 class。

int _destroyedUnits = 4;
std::string intToString = std::to_string(_destroyedUnits);
std::string name("x" + intToString + ".png");  
auto combo = Sprite::createWithSpriteFrameName(name);

你好。

根据cocos2d-x测试中的建议,正确的方法是使用sprintf,你可以这样使用:

char tmp[30];
sprintf(tmp,"x%i.png", _destroyedUnits);
std::string atlasName = tmp;
auto combo = Sprite::createWithSpriteFrameName(atlasName.c_str());