您的位置:首页 > 移动开发 > Cocos引擎

将一个制定格式的字符串转换成对象 图文并茂 cocos2d-x

2014-03-27 12:47 337 查看
std::vector<CCObject *>GameOther::changeStringToObjectShow()
{
std::vector<CCObject *> nodeArr;
std::string str ="你好,你可以获取*_label_100*金币,图标为:*_png_gold.png";

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);

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
{
CCLabelTTF *label = CCLabelTTF::create(strArr.at(j).c_str(),"Arial Bold.ttf", 15);
nodeArr.push_back(label);
}
}
return nodeArr;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cocos2d-x 2.0.4
相关文章推荐