0

我正在尝试通过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”元素作为参数。

4

0 回答 0