std::vector<CCObject *> GameOther::changeStringToObjectShow(std::string _str)
{
std::vector<CCObject *> nodeArr;
// std::string str = "你好,你可以获取/*_label_100/*金币,图标为:/*_png_gold.png";
std::string str = _str;
// std::vector<std::string> strArr;
// int split = 0;
// for(int i = 0; i < str.length(); i++)
// {
// if(str.at(i) == '*')
// {
// string str_str;
// str_str.assign(str, split, i - split);
// split = i + 1;
// strArr.push_back(str_str);
// str_str.clear();
// }
// }
// string str_str;
// str_str.assign(str, split, str.length() - split);
// strArr.push_back(str_str);
std::vector<std::string> strArr;
int split = 0;
for(int i = 0; i < str.length() - 1; i++)
{
if(str.at(i) == '/' && str.at(i+1) == '*')
{
string str_str;
str_str.assign(str, split, i - split);
split = i + 2;
strArr.push_back(str_str);
str_str.clear();
}
}
string str_str;
str_str.assign(str, split, str.length() - split);
strArr.push_back(str_str);
for (int j = 0; j < strArr.size(); j++)
{
if (strArr.at(j).at(0) == '_' && strArr.at(j).at(1) == 'l' && strArr.at(j).at(2) == 'a' && strArr.at(j).at(3) == 'b' &&
strArr.at(j).at(4) == 'e' && strArr.at(j).at(5) == 'l')
{
string strLabel;
strLabel.assign(strArr.at(j), 7, strArr.at(j).length() - 7);
CCLabelBMFont *bmLabel = CCLabelBMFont::create(strLabel.c_str(), "en.fnt");
if (bmLabel)
nodeArr.push_back(bmLabel);
}
else if (strArr.at(j).at(0) == '_' && strArr.at(j).at(1) == 'p' && strArr.at(j).at(2) == 'n' && strArr.at(j).at(3) == 'g')
{
string pngName;
pngName.assign(strArr.at(j), 5, strArr.at(j).length() - 5);
CCSprite *sp = CCSprite::create(pngName.c_str());
if (sp)
nodeArr.push_back(sp);
}
else if (strArr.at(j).at(0) == '_' && strArr.at(j).at(1) == '$' && strArr.at(j).at(2) == '_')
{
strArr.at(j) = " ";
CCLabelTTF *label = CCLabelTTF::create(strArr.at(j).c_str(), "Arial Bold.ttf", 15);
label->setString(strArr.at(j).c_str());
nodeArr.push_back(label);
}
else
{
CCLabelTTF *label = CCLabelTTF::create(strArr.at(j).c_str(), "Arial Bold.ttf", 15);
nodeArr.push_back(label);
}
}
return nodeArr;
}