我正在尝试通过xml在objective-c中加载我的关卡。
这是我的关卡编辑器输出的 xml 样式。
<level>
<entity>
<name>grey</name>
<id>5</id>
<body>false</body>
<x>0.0</x>
<y>0.0</y>
<rotation>0.0</rotation>
</entity>
<entity>
<name>grey</name>
<id>5</id>
<body>false</body>
<x>0.0</x>
<y>0.0</y>
<rotation>0.0</rotation>
</entity>
</level>
每个游戏对象在 XML 中被识别为自己的实体(在游戏中加载时的 Sprite)。因此,当解析发生时,每个实体或 CCSprite 都应该有自己的 x 和 y。
我希望解析器遍历 xml 文档,以便每个实体都有一个名称、x 和 y 以及旋转。其他元素我还不关心。
我已经尝试了几个小时来使用 NSXML 解析器启动和运行,但到目前为止还没有运气。这是我到目前为止所尝试的。
NSString* currentElement;
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
currentElement = elementName;
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
if([currentElement isEqualToString:@"name"]){
NSLog(@"Name found: %@", string);
}
}
这适用于某些元素,但问题是发现字符被多次调用,有时名称字符串返回空白。
我想要做的是当找到一个元素“名称”时,我想调用一个方法,将当前实体添加到场景中,将“名称”、“X”和“Y”元素作为参数。