---
title: SKTileMapNode
framework: spritekit
role: symbol
role_heading: Class
path: spritekit/sktilemapnode
---

# SKTileMapNode

A two-dimensional array of images.

## Declaration

```swift
class SKTileMapNode
```

## Overview

Overview SKTileMapNode does the work of laying out predefined tiles in a grid of any size. Typically, you configure 9-slice images (tile groups) in Xcode’s SpriteKit scene editor and paint the look of your tile map ahead of time versus configuring the tile map in code. As with sprite nodes, you can layer tile maps with different blend modes or control it with actions and physics, for example, for the purpose of parallax scrolling. The rendered tile map can be post processed with an SKShader to add effects such as motion blur or atmospheric perspective. note: A tile map can only render tile definitions that exist within the SKTileSet you have provided it. important: A tile map does not expose its tiles as nodes, and therefore you cannot assign individual tiles with a different zPosition or physicsBody. Instead, layer tile map nodes on top of each other at the varying zPositions, and layer invisible SKNodes on top of the tile map node to attach physicsBodies to your tile map node. To work with a tile map programmatically, you supply SKTileMapNode with a tile set that defines the tile definitions it can render. Then, fill each tile in the tile map with the fill(with:) method and set individual tiles with setTileGroup(_:andTileDefinition:forColumn:row:).

## Topics

### Creating a Tile Map Programmatically

- [Creating a Tile Map Programmatically](spritekit/creating-a-tile-map-programmatically.md)

### Controlling a Tile Map’s On-Screen Position Relative to its Origin

- [anchorPoint](spritekit/sktilemapnode/anchorpoint.md)

### Reading or Manually Configuring the Tile Map’s Size

- [tileSize](spritekit/sktilemapnode/tilesize.md)
- [tileSet](spritekit/sktilemapnode/tileset.md)
- [numberOfColumns](spritekit/sktilemapnode/numberofcolumns.md)
- [numberOfRows](spritekit/sktilemapnode/numberofrows.md)

### Querying the Tile Map’s Properties

- [centerOfTile(atColumn:row:)](spritekit/sktilemapnode/centeroftile(atcolumn:row:).md)
- [tileColumnIndex(fromPosition:)](spritekit/sktilemapnode/tilecolumnindex(fromposition:).md)
- [tileDefinition(atColumn:row:)](spritekit/sktilemapnode/tiledefinition(atcolumn:row:).md)
- [tileGroup(atColumn:row:)](spritekit/sktilemapnode/tilegroup(atcolumn:row:).md)
- [tileRowIndex(fromPosition:)](spritekit/sktilemapnode/tilerowindex(fromposition:).md)
- [mapSize](spritekit/sktilemapnode/mapsize.md)

### Tinting a Tile Map

- [color](spritekit/sktilemapnode/color.md)
- [colorBlendFactor](spritekit/sktilemapnode/colorblendfactor.md)

### Lighting a Tile Map

- [lightingBitMask](spritekit/sktilemapnode/lightingbitmask.md)

### Configuring How Alpha Values Blend the Sprite

- [blendMode](spritekit/sktilemapnode/blendmode.md)

### Working with Custom Shaders

- [shader](spritekit/sktilemapnode/shader.md)
- [attributeValues](spritekit/sktilemapnode/attributevalues.md)
- [setValue(_:forAttribute:)](spritekit/sktilemapnode/setvalue(_:forattribute:).md)
- [value(forAttributeNamed:)](spritekit/sktilemapnode/value(forattributenamed:).md)

### Initializers

- [init(tileSet:columns:rows:tileSize:fillWithTileGroup:)](spritekit/sktilemapnode/init(tileset:columns:rows:tilesize:fillwithtilegroup:)-58e45.md)
- [init(tileSet:columns:rows:tileSize:fillWithTileGroup:)](spritekit/sktilemapnode/init(tileset:columns:rows:tilesize:fillwithtilegroup:)-86yc2.md)

## Relationships

### Inherits From

- [SKNode](spritekit/sknode.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCoding](foundation/nscoding.md)
- [NSCopying](foundation/nscopying.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [NSSecureCoding](foundation/nssecurecoding.md)
- [NSStandardKeyBindingResponding](appkit/nsstandardkeybindingresponding.md)
- [NSTouchBarProvider](appkit/nstouchbarprovider.md)
- [NSUserActivityRestoring](appkit/nsuseractivityrestoring.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)
- [UIActivityItemsConfigurationProviding](uikit/uiactivityitemsconfigurationproviding.md)
- [UICoordinateSpace](uikit/uicoordinatespace.md)
- [UIFocusEnvironment](uikit/uifocusenvironment.md)
- [UIFocusItem](uikit/uifocusitem.md)
- [UIFocusItemContainer](uikit/uifocusitemcontainer.md)
- [UIPasteConfigurationSupporting](uikit/uipasteconfigurationsupporting.md)
- [UIResponderStandardEditActions](uikit/uiresponderstandardeditactions.md)
- [UIUserActivityRestoring](uikit/uiuseractivityrestoring.md)

## See Also

### Tiling

- [SKTileDefinition](spritekit/sktiledefinition.md)
- [SKTileGroup](spritekit/sktilegroup.md)
- [SKTileGroupRule](spritekit/sktilegrouprule.md)
- [SKTileSet](spritekit/sktileset.md)
