1

地图中的信息是:

     <objectgroup name="Waypoint" width="32" height="24">
  <object name="waypointsline" x="843" y="3">
   <polyline points="0,0 -13,130 -39,202 -69,237 -125,262 -162,295 -189,340 -184,376 -166,411 -124,453 -98,484 -78,529 -78,598 -80,659 -101,689 -200,695 -317,700 -453,696 -534,693 -566,656 -582,622 -585,563 -586,488 -577,428 -550,335 -547,284 -565,225 -599,190 -675,171 -751,164 -799,133 -829,93 -842,17"/>
  </object>
 </objectgroup>

如何在 Objective-C 中提取它们?

我试过了:

    NSMutableDictionary *waypoints = [objects objectNamed:@"waypointsline"];
if(waypoints) {
    NSString* v = [waypoints valueForKey:@"waypointsline"];
}

它返回零。

4

2 回答 2

2

TMX 中的折线和多边形在 cocos2d-iphone 2.0-rc0 版本中引入:

[新] TileMap:从对象中解析多边形、polilines 和 gid(问题 #1311)

如果您使用的是比 2.0-rc0 更新的版本,我想您可以通过以下方式访问这些点:

CCTMXObjectGroup *objectGroup = [tileMapLayer objectGroupNamed:@"someGroup"];
NSMutableDictionary *waypoints = [[objectGroup objectNamed:@"waypointsline"];
NSString *v = [waypoints objectForKey:@"polylinePoints"];

更多详情请参考:

于 2012-04-27T08:52:30.880 回答
0

你的数据是有XML格式的,所以你所要做的就是解析它XML

如果是针对 Mac OS X,我建议您NSXMLDocument选择NSXMLParser.

但是,还有一种更简单的方法......

下载: https ://github.com/Insert-Witty-Name/XML-to-NSDictionary

接着 :

NSDictionary *dic = [XMLReader dictionaryForXMLString:myxml error:nil];

更新


为了获取您的 XML 字符串数据:

NSString* filepath = [[NSBundle mainBundle] pathForResource:@"map" ofType:@"tmx"];
NSString* myxml = [NSString stringWithContentsOfFile:filepath
                                            encoding:NSUTF8Encoding
                                               error:nil];
于 2012-04-27T08:34:52.243 回答