2014-11-05 50 views
1

我有這個plist文件:與cocos2dx V3.2如何讀的plist水平

<?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"> 
<key>levels</key> 
<array> 
    <dict> 
     <key>x</key> 
     <int>80</int> 
     <key>y</key> 
     <int>266</int> 
    </dict> 
    <dict> 
     <key>x</key> 
     <int>170</int> 
     <key>y</key> 
     <int>266</int> 
    </dict> 
</array> 
</plist> 

我試圖用cocos2dx V3.2閱讀本文件的方式:

ValueMap data; 
std::string path = FileUtils::getInstance()->fullPathForFilename("my.plist"); 
data = FileUtils::getInstance()->getValueMapFromFile(path); 
auto arrLevels = data.at("levels").asValueVector(); 
for(int i = 0; i < arrLevels.capacity(); i++){ 
//I don't know what I have to do here to get the x value and y value of the current item. 
} 

有人可以幫助我嗎?我在所有的互聯網搜索,我找到的所有例子都是有缺陷的。

回答

4

使用此;

ValueMap data; 
std::string path = FileUtils::getInstance()->fullPathForFilename("my.plist"); 
data = FileUtils::getInstance()->getValueMapFromFile(path); 

auto arrLevels = data.at("levels").asValueVector(); 

for (int i = 0; i<arrLevels.size(); i++) { 
    ValueMap sdata = (arrLevels[i]).asValueMap(); 

    int x = sData["x"].asInt(); 
    int y = sData["y"].asInt(); 
    } 
+0

謝謝,這解決了我的問題! – Guilherme 2014-11-18 01:45:03