如何使用动态精灵名称与createWithSpriteFrameName

How to use dynamic sprite names with createWithSpriteFrameName?

本文关键字:createWithSpriteFrameName 精灵 何使用 动态      更新时间:2023-10-16

我想根据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);

正确的做法是什么?问候。

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

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

我看到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);

问候。

相关文章:
  • 没有找到相关文章