【发布时间】:2012-05-17 10:32:12
【问题描述】:
我想使用 cocos2d-x (c++) 读取 plist 这是我的清单:
<array>
<dict>
<key>x</key>
<integer>0</integer>
<key>y</key>
<integer>0</integer>
</dict>
<dict>
<key>x</key>
<integer>140</integer>
<key>y</key>
<integer>12</integer>
</dict>
<dict>
<key>x</key>
<integer>120</integer>
<key>y</key>
<integer>280</integer>
</dict>
<dict>
<key>x</key>
<integer>40</integer>
<key>y</key>
<integer>364</integer>
</dict>
<array>
它基本上是一个由 (x, y) 坐标组成的字典数组。 我原来的阅读代码是:
NSString *path = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"w%i", world] ofType:@"plist"];
NSMutableArray* points = [NSMutableArray arrayWithContentsOfFile:path];
但现在我需要将它翻译成 c++ 中的 cocos2d-x。我用谷歌搜索了一些文章,但它们都是关于将 plist 读入字典的。我需要一个数组。
编辑:::
现在我改变了我的 plist 格式:
<dict>
<key>11x</key>
<integer>0</integer>
<key>11y</key>
<integer>0</integer>
<key>12x</key>
<integer>140</integer>
<key>12y</key>
<integer>12</integer>
<dict>
我该怎么办???我仍然得到同样的错误:
CCDictionary<std::string, CCObject*>* dict = CCFileUtils::dictionaryWithContentsOfFile(plistPath);
int x = (int)dict->objectForKey("11x");
int y = (int)dict->objectForKey("11y");
行不通。 请先试用一下。看看你是否可以从示例 plist 中读取一个 int
【问题讨论】:
-
我不认为 coco2d-x 支持读取 plist..但它支持读取 xml。所以你可以解析xml并获取值
-
怎么样?我认为它支持 plist 并转换为字典。 (使用 FileUtil 的东西)
-
plist本身不是xml格式吗?
-
是的 plist 是 xml 这就是我说要解析它的原因。而且我不知道 FileUtil。如果我真的工作,然后将其发布为答案,我会 +1。
-
+1 以上信息的四个答案。
标签: iphone ios cocos2d-iphone plist cocos2d-x