Class Hierarchy
Protocols
Classes
-
Overview
The
SKTilemapclass is a container for managing layers of tiles (sprites), vector objects & images. Tile data is stored inSKTilesettile sets.Usage
Maps can be loaded with the class function
SKTilemap.load(tmxFile:):if let tilemap = SKTilemap.load(tmxFile: "myfile.tmx") { scene.addChild(tilemap) }Properties
See moreProperty Description mapSize Size of the map (in tiles). tileSize Map tile size (in pixels). renderSize Size of the map in pixels. orientation Map orientation (orthogonal, isometric, etc.) bounds Map bounding rect. tilesets Array of stored tileset instances. allowZoom Allow camera zooming. layers Array of child layers. Declaration
Swift
public class SKTilemap : SKEffectNode, SKTiledObject -
Overview
The tileset class manages a set of
SKTilesetDataobjects, which store tile data including global id, texture and animation.Tile data is accessed via a local id, and tiles can be instantiated with the resulting
SKTilesetDatainstance:if let data = tileset.getTileData(localID: 56) { let tile = SKTile(data: data) }Properties
Property Description name Tileset name. tilemap Reference to parent tilemap. tileSize Tile size (in pixels). columns Number of columns. tilecount Tile count. firstGID First tile global id. lastGID Last tile global id. tileData Set of tile data structures. Instance Methods
See moreMethod Description addTextures() Generate textures from a spritesheet image. addTilesetTile() Add & return new tile data object. Declaration
Swift
public class SKTileset : NSObject, SKTiledObject -
Overview
The
SKTiledLayerObjectis the generic base class for all layer types. This class doesn’t define any object or child types, but provides base behaviors for layered content, including:- coordinate transformations
- validating coordinates
- positioning and alignment
Properties
Property Description tilemap Parent tilemap. index Layer index. Matches the index of the layer in the source TMX file. size Layer size (in tiles). tileSize Layer tile size (in pixels). anchorPoint Layer anchor point, used to position layers. origin Layer origin point, used for placing tiles. Instance Methods
Method Description pointForCoordinate(coord:offset:) Returns a point for a coordinate in the layer, with optional offset. coordinateForPoint(_:) Returns a tile coordinate for a given point in the layer. touchLocation(_:) Returns a converted touch location in map space. coordinateAtTouchLocation(_:) Returns the tile coordinate at a touch location. isValid(coord:) Returns true if the coordinate is valid. Usage
Coordinate transformation functions return points in the current tilemap projection:
node.position = tileLayer.pointForCoordinate(2, 1)Coordinate transformation functions translate points to map coordinates:
coord = coordinateForPoint(touchPosition)Return the tile coordinate at a touch event (iOS):
coord = imageLayer.coordinateAtTouchLocation(touchPosition)Return the tile coordinate at a mouse event (macOS):
See morecoord = groupLayer.coordinateAtMouseEvent(event: mouseClicked)Declaration
Swift
public class SKTiledLayerObject : SKEffectNode, SKTiledObject -
Overview
Subclass of
SKTiledLayerObject, the tile layer is a container for an array of tiles (sprites). Tiles maintain a link to the map’s tileset via theirSKTilesetDataproperty.Properties
Property Description tileCount Returns a count of valid tiles. Instance Methods
Method Description getTiles() Returns an array of current tiles. getTiles(ofType:) Returns tiles of the given type. getTiles(globalID:) Returns all tiles matching a global id. getTilesWithProperty(:) Returns tiles matching the given property & value. animatedTiles() Returns all animated tiles. getTileData(globalID:) Returns all tiles matching a global id. tileAt(coord:) Returns a tile at the given coordinate, if one exists. Usage
Accessing a tile at a given coordinate:
let tile = tileLayer.tileAt(2, 6)!Query tiles of a certain type:
See morelet floorTiles = tileLayer.getTiles(ofType: "Floor")Declaration
Swift
public class SKTileLayer : SKTiledLayerObject -
Overview
The
SKObjectGroupclass is a container for vector object types. Most object properties can be set on the parentSKObjectGroupwhich is then applied to all child objects.Properties
Property Description count Returns the number of objects in the layer. showObjects Toggle visibility for all of the objects in the layer. lineWidth Governs object line width for each object. debugDrawOptions Debugging display flags. Methods
Method Description addObject Returns the number of objects in the layer. removeObject Toggle visibility for all of the objects in the layer. getObject(withID:) Returns an object with the given id, if it exists. Usage
Adding a child object with optional color override:
objectGroup.addObject(myObject, withColor: SKColor.red)Querying an object with a specific name:
let doorObject = objectGroup.getObject(named: "Door")Returning objects of a certain type:
See morelet rockObjects = objectGroup.getObjects(ofType: "Rock")Declaration
Swift
public class SKObjectGroup : SKTiledLayerObject -
Overview
Subclass of
SKTiledLayerObject, the group layer is a container for managing groups of layers.Usage
Query child layers:
for child in group.layers { child.opacity = 0.5 }Add layers to the group with:
groupLayer.addLayer(playerLayer)Remove with:
See moregroupLayer.removeLayer(playerLayer)Declaration
Swift
public class SKGroupLayer : SKTiledLayerObject -
Overview
The
SKImageLayerobject is really nothing more than a sprite with positioning attributes.Properties
Property Description image Layer image name. wrapX Wrap horizontally. wrapY Wrap vertically. Methods
Method Description setLayerImage Set the layer’s image. setLayerTexture Set the layer’s texture. wrapY Wrap vertically. Usage
Set the layer image with:
See moreimageLayer.setLayerImage("clouds-background")Declaration
Swift
public class SKImageLayer : SKTiledLayerObject -
▶︎SKTileOverview
The
SKTileclass is a custom SpriteKit sprite node that references its data from a tileset.Tile data (including texture) is stored in
SKTilesetDataproperty.Properties
Property Description tileSize tile size (in pixels) tileData tile data structure layer parent tile layer Instance Methods
See moreMethod Description setupPhysics(shapeOf:isDynamic:) Setup physics for the tile. setupPhysics(rectSize:isDynamic:) Setup physics for the tile. setupPhysics(withSize:isDynamic:) Setup physics for the tile. runAnimation() Play tile animation (if animated). removeAnimation(restore:) Remove animation. runAnimationAsActions() Runs a SpriteKit action to animate tile tile (if animated). removeAnimationActions(restore:) Remove the animation for the current tile. Declaration
Swift
open class SKTile : SKSpriteNode -
Overview
The
SKTilesetDataobject stores data for a single tileset tile, referencing the tile texture, animation frames (for animated tiles) as well as tile orientation.Also includes navigation properties for tile accessability, and graph node weight.
Properties
See moreProperty Description id Tile id (local) type Tiled type texture Tile texture tileOffset Tile offset Declaration
Swift
public class SKTilesetData : SKTiledObjectextension SKTilesetData: Hashableextension SKTilesetData: CustomStringConvertible, CustomDebugStringConvertible -
Overview
The
SKTileObjectclass represents a Tiled vector object type (rectangle, ellipse, polygon & polyline). When the object is created, points can be added either with an array ofCGPointobjects, or a string. In order to render the object, theSKTileObject.getVertices()method is called, which returns the points needed to draw the path.Properties
See moreProperty Description id Tiled object id. size Object size. tileData Tile data (for tile objects). text Text string (for text objects). Setting this redraws the object. bounds Returns the bounding box of the shape. Declaration
Swift
open class SKTileObject : SKShapeNode, SKTiledObject -
Overview
Custom scene type for managing
SKTilemapnodes.Conforms to the
SKTiledSceneDelegate,SKTilemapDelegate&SKTilesetDataSourceprotocols.Properties
Property Description worldNode Root container node. tilemap Tile map object. cameraNode Custom scene camera. Instance Methods
See moreMethod Description sceneDoubleTapped Called when the scene receives a double-tap event (iOS only). cameraPositionChanged Called when the camera positon changes. cameraZoomChanged Called when the camera zoom changes. cameraBoundsChanged Called when the camera bounds updated. sceneDoubleClicked Called when the scene is double-clicked (macOS only). mousePositionChanged Called when the mouse moves in the scene (macOS only). Declaration
Swift
open class SKTiledScene : SKScene, SKPhysicsContactDelegate, SKTiledSceneDelegate, SKTilemapDelegate, SKTilesetDataSourceextension SKTiledScene: SKTiledSceneCameraDelegate -
Overview
Custom scene camera that responds to finger gestures and mouse events.
The
SKTiledSceneCamerais a custom camera meant to be used with a scene conforming to theSKTiledSceneDelegateprotocol. The camera defines a position in the scene to render the scene from, with a reference to theSKTiledSceneDelegate.worldNodeto interact with tile maps.Properties
See moreProperty Description world World container node. delegates Array of delegates to notify about camera updates. zoom Camera zoom value. allowMovement Toggle to allow camera movement. minZoom Minimum zoom value. maxZoom Maximum zoom value. zoomClamping Clamping factor used to alleviate render artifacts like cracking. Declaration
Swift
public class SKTiledSceneCamera : SKCameraNode -
Overview
Custom
GKGridGraphNodeobject that adds a weight parameter for use with Tiled scene properties. Can be used with normalGKGridGraphNodeinstances. TheSKTiledGraphNode.weightproperty is used to affect the estimated cost to a connected node. (Increasing the weight makes it less likely to be travelled to, decreasing more likely).Usage
See more// query a node in the graph and increase the weight property if let node = graph.node(atGridPosition: coord) as? SKTiledGraphNode { node.weight = 25.0 }Declaration
Swift
public class SKTiledGraphNode : GKGridGraphNode, SKTiledObject -
Overview
A structure representing a single frame of animation. Time is stored in milliseconds.
Properties
See moreProperty Description id unique tile (local) id. duration frame duration. texture optional tile texture. Declaration
Swift
public class TileAnimationFrame : NSObject
View on GitHub
Class Hierarchy Reference