地图中的信息是:
<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"];
}
它返回零。
答案 0 :(得分:2)
TMX中的折线和多边形在版本2.0-rc0中被引入cocos2d-iphone:
[新] TileMap:从对象中解析多边形,polilines和gid(问题#1311)
如果您使用的是比2.0-rc0更新的版本,我想您可以通过以下类似的方式访问这些点:
CCTMXObjectGroup *objectGroup = [tileMapLayer objectGroupNamed:@"someGroup"];
NSMutableDictionary *waypoints = [[objectGroup objectNamed:@"waypointsline"];
NSString *v = [waypoints objectForKey:@"polylinePoints"];
有关详细信息,请参阅:
答案 1 :(得分:0)
您的数据格式为XML
,因此您只需解析XML
。
如果是适用于Mac OS X,我建议你选择NSXMLDocument
,但由于你想要的是iOS专用的,那么你的下一个赌注是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];