2016-10-27 3 views
0

Я хочу изменить изображение спрайта в соответствии с некоторой динамической переменной в Cocos2d-x и C++, так что я пытаюсь что-то вроде этого, но есть ошибка. Что это может быть правильным способом? Приветствую.Как использовать динамические имена спрайтов с именем createWithSpriteFrameName?

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

Что случилось с вопросом? – Diego

ответ

1

Как было предложено в cocos2d-х тестов, правильный способ заключается в использовании Sprintf, вы можете использовать его как это:

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

Я видел, что createWithSpriteFrameName принимает C++ basic_string, а не Cocos String, поэтому путь относится к строкам, а не к классу String.

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

Приветствия.

 Смежные вопросы

  • Нет связанных вопросов^_^