SKTiledMap 是用于 SpriteKit 的 TMX TileMap 框架。支持 iOS 8 和 OS X 10.10 及以上版本。
这是一个用于解析 Tiled Map Editor 产生的地图的库。
Cocoapods
pod 'SKTiledMap'
Add #import <SKTiledMap/SKTiledMap.h> to your source file.
#import <SKTiledMap/SKTiledMap.h>
Manually
Download the latest code version
Open your project in Xcode, then drag and drop Framework/ folder into your project
Framework/
configure Dependencies
Add #import 'SKTiledMap.h' to your source file.
#import 'SKTiledMap.h'
SKTMMapLayer *mapLayer = [[SKTMMapLayer alloc] initWithContentsOfFile:@"map.tmx"]; [self addChild:mapLayer];// get tile layerSKTMTileLayer *tileLayer = [mapLayer tileLayerWithName:@"Ground"];// get object layerSKTMObjectGroupLayer *objLayer = [mapLayer objectLayerWithName:@"Obj"];// get shape in object layerSKTMObjectGroupShape *heroObjShape = [objLayer shapeWithName:@"Hero"];// get custom properties[heroObjShape.model propertyForName:@"status"];// get image layerSKTMImageLayer *imgLayer = [mapLayer imageLayerWithName:@"Background"];// Coordinates System ConvertCGPoint tilePoint = [mapLayer.mapRenderer screenToTileCoords:CGPointMake(320, 600)]; CGPoint mapPoint = [mapLayer.mapRenderer tileToScreenCoords:CGPointMake(1, 1)];// more detail you can see in demo or source code.
All map types:
Orthogonal
Isometric
Isometric (staggered)
Hexagonal (staggered)
All TileLayerFormat:
XML
Base64 (uncompressed)
Base64 (gzip compressed)
Base64 (zlib compressed)
CSV
All Tile Render Ways:
Stagger Axis (X, Y)
Stagger Index (Odd, Even)
Tile Render Order (RightDown, RightUp, LeftDown, LeftUp)
Flipped/Rotated Tiles Or Objects
All ObjectGroup Shape
Rectangle
Ellipse
Polygon
Polyline
Animated tile support
请查看 TMX map format reference page.
SKTiledMap(root) └── Framework │ │-- SKTiledMap.h│ ├── Model │ |-- TMXObject│ |-- TMXTile│ |-- TMXTileset│ |-- TMXTileLayer│ |-- TMXObjectGroupNode│ |-- TMXObjectGroup│ |-- TMXImageLayer│ |-- TMXMap│ ├── Classes │ |-- SKMapRenderer│ |-- OrthogonalRenderer│ |-- IsometricRenderer│ |-- StaggeredRenderer│ |-- HexagonalRenderer│ └── SpriteKitNode |-- SKTMNode|-- SKTMTileNode|-- SKTMObjectGroupTile|-- SKTMObjectGroupShape│ |-- SKTMLayer|-- SKTMTileLayer|-- SKTMObjectGroupLayer|-- SKTMImageLayer|-- SKTMMapLayer