Plist格式属于XML文件,用于通常用于储存用户设置,也可以用于存储捆绑的信息。为避免我们在写程序时候写死,方便以后的测试修改工作,我们常常需要用.plist文件存储用户设置等信息,类似的还有粒子效果,瓦片地图等,使用TexturePacker,Particle Designer图片工具打包小图片时,就会生成一个pilst文件。
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>lblSound</key>
<string>音 效:</string>
<key>lblMusic</key>
<string>背景音:</string>
<key>sound</key>
<string>音效</string>
<key>test</key>
<string>测试</string>
<key>music</key>
<string>音乐</string>
<key>info_service</key>
<string>信息与服务</string>
<key>lblHighScore</key>
<string>最高分:</string>
</dict>
</plist>
<Key>是键,<real>是属性值,<string>是UTF-8编码的中文字符。这里是将需要的文字全部提取到文件中。这样也能避免出现中文乱码的问题。
使用实例:
string MyUitility::getUTF8Char(const string key)
{
auto SharedFileUtils = FileUtils::getInstance();
std::string fullPathForFilename = SharedFileUtils->fullPathForFilename("utf8_char.plist");
bool isExist = false;
isExist= SharedFileUtils->isFileExist(fullPathForFilename);
if (!isExist)
{
log("utf8_char.plist no ");
return "";
}
ValueMap map= SharedFileUtils->getValueMapFromFile(fullPathForFilename);
Value Value = map[key];
return Value.asString();
}
auto txtTest = Label::createWithTTF(MyUtility::getUTF8Char("test"), "fonts/hanyi.ttf", 18);
txtTest->setColor(Color3B(14,83,204));
txtTest->setPosition(95, top->getPosition().y - 70);
txtTest->setAnchorPoint(Vec2(0,0));
addChild(txtTest, 1);
注:使用的是关东升老师的《Cocos2d-x实战 c++》中的代码。