NSXML解析器并加载级别cocos2D

时间:2012-12-31 01:42:05

标签: objective-c cocos2d-iphone xml-parsing

我正在尝试通过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);

 }

 }

这适用于某些元素,但问题是foundCharacters被多次调用,有时名称字符串返回空白。

我想要做的是当找到一个元素“name,我想调用一个方法,将当前实体添加到场景中,将”Name“,”X“和”Y“元素作为参数。< / p>

0 个答案:

没有答案