Phaser API Documentation

  Version: 
Filter

A Tilemap is a container for Tilemap data. This isn't a display object, rather, it holds data about the map and allows you to add tilesets and tilemap layers to it. A map can have one or more tilemap layers, which are the display objects that actually render the tiles.

The Tilemap data can be parsed from a Tiled JSON file, a CSV file or a 2D array. Tiled is a free software package specifically for creating tile maps, and is available from: http://www.mapeditor.org

As of Phaser 3.50.0 the Tilemap API now supports the following types of map:

  1. Orthogonal
  2. Isometric
  3. Hexagonal
  4. Staggered

Prior to this release, only orthogonal maps were supported.

Another large change in 3.50 was the consolidation of Tilemap Layers. Previously, you created either a Static or Dynamic Tilemap Layer. However, as of 3.50 the features of both have been merged and the API simplified, so now there is just the single TilemapLayer class.

A Tilemap has handy methods for getting and manipulating the tiles within a layer, allowing you to build or modify the tilemap data at runtime.

Note that all Tilemaps use a base tile size to calculate dimensions from, but that a TilemapLayer may have its own unique tile size that overrides this.

As of Phaser 3.21.0, if your tilemap includes layer groups (a feature of Tiled 1.2.0+) these will be traversed and the following properties will impact children:

  • Opacity (blended with parent) and visibility (parent overrides child)
  • Vertical and horizontal offset

The grouping hierarchy is not preserved and all layers will be flattened into a single array.

Group layers are parsed during Tilemap construction but are discarded after parsing so dynamic layers will NOT continue to be affected by a parent.

To avoid duplicate layer names, a layer that is a child of a group layer will have its parent group name prepended with a '/'. For example, consider a group called 'ParentGroup' with a child called 'Layer 1'. In the Tilemap object, 'Layer 1' will have the name 'ParentGroup/Layer 1'.

The Phaser Tiled Parser does not support the 'Collection of Images' feature for a Tileset. You must ensure all of your tiles are contained in a single tileset image file (per layer) and have this 'embedded' in the exported Tiled JSON map data.

Constructor:

new Tilemap(scene, mapData)

Parameters:

name type description
scene Phaser.Scene

The Scene to which this Tilemap belongs.

mapData Phaser.Tilemaps.MapData

A MapData instance containing Tilemap data.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 45)

Members

<private> _convert: object
Focus
Focus

Description:

Functions used to handle world to tile, and tile to world, conversion. Cached here for internal use by public methods such as worldToTileXY, etc.

Type:
object
Since: 3.50.0
Source: src/tilemaps/Tilemap.js (Line 304)
Focus
Focus
currentLayerIndex: number
Focus
Focus

Description:

The index of the currently selected LayerData object.

Type:
number
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 283)
Focus
Focus
format: number
Focus
Focus

Description:

The format of the map data.

Type:
number
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 180)
Focus
Focus
height: number
Focus
Focus

Description:

The height of the map (in tiles).

Type:
number
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 144)
Focus
Focus
heightInPixels: number
Focus
Focus

Description:

The height of the map in pixels based on height * tileHeight.

Type:
number
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 219)
Focus
Focus
hexSideLength: number
Focus
Focus

Description:

The length of the horizontal sides of the hexagon. Only used for hexagonal orientation Tilemaps.

Type:
number
Since: 3.50.0
Source: src/tilemaps/Tilemap.js (Line 292)
Focus
Focus
imageCollections: Array.<Phaser.Tilemaps.ImageCollection>
Focus
Focus

Description:

A collection of Images, as parsed from Tiled map data.

Type:
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 228)
Focus
Focus
images: array
Focus
Focus

Description:

An array of Tiled Image Layers.

Type:
array
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 237)
Focus
Focus

Description:

The LayerData object that is currently selected in the map. You can set this property using any type supported by setLayer.

Type:
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1583)
Focus
Focus
layers: Array.<Phaser.Tilemaps.LayerData>
Focus
Focus

Description:

An array of Tilemap layer data.

Type:
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 246)
Focus
Focus
objects: Array.<Phaser.Tilemaps.ObjectLayer>
Focus
Focus

Description:

An array of ObjectLayer instances parsed from Tiled object layers.

Type:
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 274)
Focus
Focus
orientation: string
Focus
Focus

Description:

The orientation of the map data (as specified in Tiled), usually 'orthogonal'.

Type:
string
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 153)
Focus
Focus
properties: object | Array.<object>
Focus
Focus

Description:

Map specific properties as specified in Tiled.

Depending on the version of Tiled and the JSON export used, this will be either an object or an array of objects. For Tiled 1.2.0+ maps, it will be an array.

Type:
object | Array.<object>
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 198)
Focus
Focus
renderOrder: string
Focus
Focus

Description:

The render (draw) order of the map data (as specified in Tiled), usually 'right-down'.

The draw orders are:

right-down left-down right-up left-up

This can be changed via the setRenderOrder method.

Type:
string
Since: 3.12.0
Source: src/tilemaps/Tilemap.js (Line 162)
Focus
Focus
scene: Phaser.Scene
Focus
Focus
Type:
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 108)
Focus
Focus
tileHeight: number
Focus
Focus

Description:

The base height of a tile in pixels. Note that individual layers may have a different tile height.

Type:
number
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 125)
Focus
Focus
tileWidth: number
Focus
Focus

Description:

The base width of a tile in pixels. Note that individual layers may have a different tile width.

Type:
number
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 115)
Focus
Focus
tiles: array
Focus
Focus

Description:

Master list of tiles -> x, y, index in tileset.

Type:
array
Since: 3.60.0
Source: src/tilemaps/Tilemap.js (Line 255)
Focus
Focus
tilesets: Array.<Phaser.Tilemaps.Tileset>
Focus
Focus

Description:

An array of Tilesets used in the map.

Type:
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 265)
Focus
Focus
version: number
Focus
Focus

Description:

The version of the map data (as specified in Tiled, usually 1).

Type:
number
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 189)
Focus
Focus
width: number
Focus
Focus

Description:

The width of the map (in tiles).

Type:
number
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 135)
Focus
Focus
widthInPixels: number
Focus
Focus

Description:

The width of the map in pixels based on width * tileWidth.

Type:
number
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 210)
Focus
Focus

Methods

addTilesetImage(tilesetName, [key], [tileWidth], [tileHeight], [tileMargin], [tileSpacing], [gid], [tileOffset])
Focus
Focus

Description:

Adds an image to the map to be used as a tileset. A single map may use multiple tilesets. Note that the tileset name can be found in the JSON file exported from Tiled, or in the Tiled editor.

Parameters:

name type arguments Default description
tilesetName string

The name of the tileset as specified in the map data.

key string <optional>

The key of the Phaser.Cache image used for this tileset. If undefined or null it will look for an image with a key matching the tilesetName parameter.

tileWidth number <optional>

The width of the tile (in pixels) in the Tileset Image. If not given it will default to the map's tileWidth value, or the tileWidth specified in the Tiled JSON file.

tileHeight number <optional>

The height of the tiles (in pixels) in the Tileset Image. If not given it will default to the map's tileHeight value, or the tileHeight specified in the Tiled JSON file.

tileMargin number <optional>

The margin around the tiles in the sheet (in pixels). If not specified, it will default to 0 or the value specified in the Tiled JSON file.

tileSpacing number <optional>

The spacing between each the tile in the sheet (in pixels). If not specified, it will default to 0 or the value specified in the Tiled JSON file.

gid number <optional> 0

If adding multiple tilesets to a blank map, specify the starting GID this set will use here.

tileOffset object <optional> {x: 0, y: 0}

Tile texture drawing offset. If not specified, it will default to {0, 0}

Returns:
Description:

Returns the Tileset object that was created or updated, or null if it failed.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 370)
Focus
Focus
calculateFacesAt(tileX, tileY, [layer])
Focus
Focus

Description:

Calculates interesting faces at the given tile coordinates of the specified layer. Interesting faces are used internally for optimizing collisions against tiles. This method is mostly used internally to optimize recalculating faces when only one tile has been changed.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
tileX number

The x coordinate, in tiles, not pixels.

tileY number

The y coordinate, in tiles, not pixels.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Returns this, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1729)
Focus
Focus
calculateFacesWithin([tileX], [tileY], [width], [height], [layer])
Focus
Focus

Description:

Calculates interesting faces within the rectangular area specified (in tile coordinates) of the layer. Interesting faces are used internally for optimizing collisions against tiles. This method is mostly used internally.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
tileX number <optional>

The left most tile index (in tile coordinates) to use as the origin of the area.

tileY number <optional>

The top most tile index (in tile coordinates) to use as the origin of the area.

width number <optional>

How many tiles wide from the tileX index the area will be.

height number <optional>

How many tiles tall from the tileY index the area will be.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Returns this, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1756)
Focus
Focus
copy(srcTileX, srcTileY, width, height, destTileX, destTileY, [recalculateFaces], [layer])
Focus
Focus

Description:

Copies the tiles in the source rectangular area to a new destination (all specified in tile coordinates) within the layer. This copies all tile properties & recalculates collision information in the destination region.

If no layer specified, the map's current layer is used. This cannot be applied to StaticTilemapLayers.

Parameters:

name type arguments Default description
srcTileX number

The x coordinate of the area to copy from, in tiles, not pixels.

srcTileY number

The y coordinate of the area to copy from, in tiles, not pixels.

width number

The width of the area to copy, in tiles, not pixels.

height number

The height of the area to copy, in tiles, not pixels.

destTileX number

The x coordinate of the area to copy to, in tiles, not pixels.

destTileY number

The y coordinate of the area to copy to, in tiles, not pixels.

recalculateFaces boolean <optional> true

true if the faces data should be recalculated.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Returns this, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 459)
Focus
Focus
createBlankLayer(name, tileset, [x], [y], [width], [height], [tileWidth], [tileHeight])
Focus
Focus

Description:

Creates a new and empty Tilemap Layer. The currently selected layer in the map is set to this new layer.

Prior to v3.50.0 this method was called createBlankDynamicLayer.

Parameters:

name type arguments description
name string

The name of this layer. Must be unique within the map.

tileset string | Array.<string> | Phaser.Tilemaps.Tileset | Array.<Phaser.Tilemaps.Tileset>

The tileset, or an array of tilesets, used to render this layer. Can be a string or a Tileset object.

x number <optional>

The world x position where the top left of this layer will be placed.

y number <optional>

The world y position where the top left of this layer will be placed.

width number <optional>

The width of the layer in tiles. If not specified, it will default to the map's width.

height number <optional>

The height of the layer in tiles. If not specified, it will default to the map's height.

tileWidth number <optional>

The width of the tiles the layer uses for calculations. If not specified, it will default to the map's tileWidth.

tileHeight number <optional>

The height of the tiles the layer uses for calculations. If not specified, it will default to the map's tileHeight.

Returns:
Description:

Returns the new layer that was created, or null if it failed.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 501)
Focus
Focus
createFromObjects(objectLayerName, config, [useTileset])
Focus
Focus

Description:

This method will iterate through all of the objects defined in a Tiled Object Layer and then convert the matching results into Phaser Game Objects (by default, Sprites)

Objects are matched on one of 4 criteria: The Object ID, the Object GID, the Object Name, or the Object Type.

Within Tiled, Object IDs are unique per Object. Object GIDs, however, are shared by all objects using the same image. Finally, Object Names and Types are strings and the same name can be used on multiple Objects in Tiled, they do not have to be unique; Names are specific to Objects while Types can be inherited from Object GIDs using the same image.

You set the configuration parameter accordingly, based on which type of criteria you wish to match against. For example, to convert all items on an Object Layer with a gid of 26:

createFromObjects(layerName, {
  gid: 26
});

Or, to convert objects with the name 'bonus':

createFromObjects(layerName, {
  name: 'bonus'
});

Or, to convert an object with a specific id:

createFromObjects(layerName, {
  id: 9
});

You should only specify either id, gid, name, type, or none of them. Do not add more than one criteria to your config. If you do not specify any criteria, then all objects in the Object Layer will be converted.

By default this method will convert Objects into Phaser.GameObjects.Sprite instances, but you can override this by providing your own class type:

createFromObjects(layerName, {
  gid: 26,
  classType: Coin
});

This will convert all Objects with a gid of 26 into your custom Coin class. You can pass any class type here, but it must extend Phaser.GameObjects.GameObject as its base class. Your class will always be passed 1 parameter: scene, which is a reference to either the Scene specified in the config object or, if not given, the Scene to which this Tilemap belongs. The class must have setPosition and setTexture methods.

This method will set the following Tiled Object properties on the new Game Object:

  • flippedHorizontal as flipX
  • flippedVertical as flipY
  • height as displayHeight
  • name
  • rotation
  • visible
  • width as displayWidth
  • x, adjusted for origin
  • y, adjusted for origin

Additionally, this method will set Tiled Object custom properties

  • on the Game Object, if it has the same property name and a value that isn't undefined; or
  • on the Game Object's data otherwise.

For example, a Tiled Object with custom properties { alpha: 0.5, gold: 1 } will be created as a Game Object with an alpha value of 0.5 and a data.values.gold value of 1.

When useTileset is true (the default), Tile Objects will inherit the texture and any tile properties from the tileset, and the local tile ID will be used as the texture frame. For the frame selection to work you need to load the tileset texture as a spritesheet so its frame names match the local tile IDs.

For instance, a tileset tile

{ id: 3, type: 'treadmill', speed: 4 }

with gid 19 and an object

{ id: 7, gid: 19, speed: 5, rotation: 90 }

will be interpreted as

{ id: 7, gid: 19, speed: 5, rotation: 90, type: 'treadmill', texture: '[the tileset texture]', frame: 3 }

You can suppress this behavior by setting the boolean ignoreTileset for each config that should ignore object gid tilesets.

You can set a container property in the config. If given, the new Game Object will be added to the Container or Layer instance instead of the Scene.

You can set named texture-key and texture-frame properties, which will be set on the new Game Object.

Finally, you can provide an array of config objects, to convert multiple types of object in a single call:

createFromObjects(layerName, [
  {
    gid: 26,
    classType: Coin
  },
  {
    id: 9,
    classType: BossMonster
  },
  {
    name: 'lava',
    classType: LavaTile
  },
  {
    type: 'endzone',
    classType: Phaser.GameObjects.Zone
  }
]);

The signature of this method changed significantly in v3.60.0. Prior to this, it did not take config objects.

Parameters:

name type arguments Default description
objectLayerName string

The name of the Tiled object layer to create the Game Objects from.

config Phaser.Types.Tilemaps.CreateFromObjectLayerConfig | Array.<Phaser.Types.Tilemaps.CreateFromObjectLayerConfig>

A CreateFromObjects configuration object, or an array of them.

useTileset boolean <optional> true

True if objects that set gids should also search the underlying tile for properties and data.

Returns:
Description:

An array containing the Game Objects that were created. Empty if invalid object layer, or no matching id/gid/name was found.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 641)
Focus
Focus
createFromTiles(indexes, replacements, [spriteConfig], [scene], [camera], [layer])
Focus
Focus

Description:

Creates a Sprite for every tile matching the given tile indexes in the layer. You can optionally specify if each tile will be replaced with a new tile after the Sprite has been created. Set this value to -1 if you want to just remove the tile after conversion.

This is useful if you want to lay down special tiles in a level that are converted to Sprites, but want to replace the tile itself with a floor tile or similar once converted.

The following features were added in Phaser v3.80:

By default, Phaser Sprites have their origin set to 0.5 x 0.5. If you don't specify a new origin in the spriteConfig, then it will adjust the sprite positions by half the tile size, to position them accurately on the map.

When the Sprite is created it will copy the following properties from the tile:

'rotation', 'flipX', 'flipY', 'alpha', 'visible' and 'tint'.

The spriteConfig also has a special property called useSpriteSheet. If this is set to true and you have loaded the tileset as a sprite sheet (not an image), then it will set the Sprite key and frame to match the sprite texture and tile index.

Parameters:

name type arguments description
indexes number | array

The tile index, or array of indexes, to create Sprites from.

replacements number | array

The tile index, or array of indexes, to change a converted tile to. Set to null to leave the tiles unchanged. If an array is given, it is assumed to be a one-to-one mapping with the indexes array.

spriteConfig Phaser.Types.GameObjects.Sprite.SpriteConfig <optional>

The config object to pass into the Sprite creator (i.e. scene.make.sprite).

scene Phaser.Scene <optional>

The Scene to create the Sprites within.

camera Phaser.Cameras.Scene2D.Camera <optional>

The Camera to use when calculating the tile index from the world values.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Returns an array of Tiles, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 925)
Focus
Focus
createLayer(layerID, tileset, [x], [y])
Focus
Focus

Description:

Creates a new Tilemap Layer that renders the LayerData associated with the given layerID. The currently selected layer in the map is set to this new layer.

The layerID is important. If you've created your map in Tiled then you can get this by looking in Tiled and looking at the layer name. Or you can open the JSON file it exports and look at the layers[].name value. Either way it must match.

Prior to v3.50.0 this method was called createDynamicLayer.

Parameters:

name type arguments description
layerID number | string

The layer array index value, or if a string is given, the layer name from Tiled.

tileset string | Array.<string> | Phaser.Tilemaps.Tileset | Array.<Phaser.Tilemaps.Tileset>

The tileset, or an array of tilesets, used to render this layer. Can be a string or a Tileset object.

x number <optional>

The x position to place the layer in the world. If not specified, it will default to the layer offset from Tiled or 0.

y number <optional>

The y position to place the layer in the world. If not specified, it will default to the layer offset from Tiled or 0.

Returns:
Description:

Returns the new layer was created, or null if it failed.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 573)
Focus
Focus
destroy()
Focus
Focus

Description:

Removes all layer data from this Tilemap and nulls the scene reference. This will destroy any TilemapLayers that have been created.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 2707)
Focus
Focus
destroyLayer([layer])
Focus
Focus

Description:

Destroys the given TilemapLayer and removes it from this Tilemap.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to be destroyed.

Returns:
Description:

Returns this, or null if the layer given was invalid.

Since: 3.17.0
Source: src/tilemaps/Tilemap.js (Line 1826)
Focus
Focus
fill(index, [tileX], [tileY], [width], [height], [recalculateFaces], [layer])
Focus
Focus

Description:

Sets the tiles in the given rectangular area (in tile coordinates) of the layer with the specified index. Tiles will be set to collide if the given index is a colliding index. Collision information in the region will be recalculated.

If no layer specified, the map's current layer is used. This cannot be applied to StaticTilemapLayers.

Parameters:

name type arguments Default description
index number

The tile index to fill the area with.

tileX number <optional>

The left most tile index (in tile coordinates) to use as the origin of the area.

tileY number <optional>

The top most tile index (in tile coordinates) to use as the origin of the area.

width number <optional>

How many tiles wide from the tileX index the area will be.

height number <optional>

How many tiles tall from the tileY index the area will be.

recalculateFaces boolean <optional> true

true if the faces data should be recalculated.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Returns this, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 970)
Focus
Focus
filterObjects(objectLayer, callback, [context])
Focus
Focus

Description:

For each object in the given object layer, run the given filter callback function. Any objects that pass the filter test (i.e. where the callback returns true) will be returned in a new array. Similar to Array.prototype.Filter in vanilla JS.

Parameters:

name type arguments description
objectLayer string | Phaser.Tilemaps.ObjectLayer

The name of an object layer (from Tiled) or an ObjectLayer instance.

callback TilemapFilterCallback

The callback. Each object in the given area will be passed to this callback as the first and only parameter.

context object <optional>

The context under which the callback should be run.

Returns:
Description:

An array of object that match the search, or null if the objectLayer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1004)
Focus
Focus
filterTiles(callback, [context], [tileX], [tileY], [width], [height], [filteringOptions], [layer])
Focus
Focus

Description:

For each tile in the given rectangular area (in tile coordinates) of the layer, run the given filter callback function. Any tiles that pass the filter test (i.e. where the callback returns true) will returned as a new array. Similar to Array.prototype.Filter in vanilla JS. If no layer specified, the map's current layer is used.

Parameters:

name type arguments description
callback function

The callback. Each tile in the given area will be passed to this callback as the first and only parameter. The callback should return true for tiles that pass the filter.

context object <optional>

The context under which the callback should be run.

tileX number <optional>

The left most tile index (in tile coordinates) to use as the origin of the area to filter.

tileY number <optional>

The top most tile index (in tile coordinates) to use as the origin of the area to filter.

width number <optional>

How many tiles wide from the tileX index the area will be.

height number <optional>

How many tiles tall from the tileY index the area will be.

filteringOptions Phaser.Types.Tilemaps.FilteringOptions <optional>

Optional filters to apply when getting the tiles.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Returns an array of Tiles, or null if the layer given was invalid.

Type:
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1036)
Focus
Focus
findByIndex(index, [skip], [reverse], [layer])
Focus
Focus

Description:

Searches the entire map layer for the first tile matching the given index, then returns that Tile object. If no match is found, it returns null. The search starts from the top-left tile and continues horizontally until it hits the end of the row, then it drops down to the next column. If the reverse boolean is true, it scans starting from the bottom-right corner traveling up to the top-left. If no layer specified, the map's current layer is used.

Parameters:

name type arguments Default description
index number

The tile index value to search for.

skip number <optional> 0

The number of times to skip a matching tile before returning.

reverse boolean <optional> false

If true it will scan the layer in reverse, starting at the bottom-right. Otherwise it scans from the top-left.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Returns a Tiles, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1067)
Focus
Focus
findObject(objectLayer, callback, [context])
Focus
Focus

Description:

Find the first object in the given object layer that satisfies the provided testing function. I.e. finds the first object for which callback returns true. Similar to Array.prototype.find in vanilla JS.

Parameters:

name type arguments description
objectLayer string | Phaser.Tilemaps.ObjectLayer

The name of an object layer (from Tiled) or an ObjectLayer instance.

callback TilemapFindCallback

The callback. Each object in the given area will be passed to this callback as the first and only parameter.

context object <optional>

The context under which the callback should be run.

Returns:
Description:

An object that matches the search, or null if no object found.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1094)
Focus
Focus
findTile(callback, [context], [tileX], [tileY], [width], [height], [filteringOptions], [layer])
Focus
Focus

Description:

Find the first tile in the given rectangular area (in tile coordinates) of the layer that satisfies the provided testing function. I.e. finds the first tile for which callback returns true. Similar to Array.prototype.find in vanilla JS. If no layer specified, the maps current layer is used.

Parameters:

name type arguments description
callback FindTileCallback

The callback. Each tile in the given area will be passed to this callback as the first and only parameter.

context object <optional>

The context under which the callback should be run.

tileX number <optional>

The left most tile index (in tile coordinates) to use as the origin of the area to search.

tileY number <optional>

The top most tile index (in tile coordinates) to use as the origin of the area to search.

width number <optional>

How many tiles wide from the tileX index the area will be.

height number <optional>

How many tiles tall from the tileY index the area will be.

filteringOptions Phaser.Types.Tilemaps.FilteringOptions <optional>

Optional filters to apply when getting the tiles.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The Tile layer to run the search on. If not provided will use the current layer.

Returns:
Description:

Returns a Tiles, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1126)
Focus
Focus
forEachTile(callback, [context], [tileX], [tileY], [width], [height], [filteringOptions], [layer])
Focus
Focus

Description:

For each tile in the given rectangular area (in tile coordinates) of the layer, run the given callback. Similar to Array.prototype.forEach in vanilla JS.

If no layer specified, the map's current layer is used.

Parameters:

name type arguments description
callback EachTileCallback

The callback. Each tile in the given area will be passed to this callback as the first and only parameter.

context object <optional>

The context under which the callback should be run.

tileX number <optional>

The left most tile index (in tile coordinates) to use as the origin of the area to search.

tileY number <optional>

The top most tile index (in tile coordinates) to use as the origin of the area to search.

width number <optional>

How many tiles wide from the tileX index the area will be.

height number <optional>

How many tiles tall from the tileY index the area will be.

filteringOptions Phaser.Types.Tilemaps.FilteringOptions <optional>

Optional filters to apply when getting the tiles.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The Tile layer to run the search on. If not provided will use the current layer.

Returns:
Description:

Returns this, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1155)
Focus
Focus
getImageIndex(name)
Focus
Focus

Description:

Gets the image layer index based on its name.

Parameters:

name type description
name string

The name of the image to get.

Returns:
Description:

The index of the image in this tilemap, or null if not found.

Type:
  • number
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1186)
Focus
Focus
getImageLayerNames()
Focus
Focus

Description:

Return a list of all valid imagelayer names loaded in this Tilemap.

Returns:
Description:

Array of valid imagelayer names / IDs loaded into this Tilemap.

Type:
  • Array.<string>
Since: 3.21.0
Source: src/tilemaps/Tilemap.js (Line 1201)
Focus
Focus
getIndex(location, name)
Focus
Focus

Description:

Internally used. Returns the index of the object in one of the Tilemaps arrays whose name property matches the given name.

Parameters:

name type description
location array

The Tilemap array to search.

name string

The name of the array element to get.

Returns:
Description:

The index of the element in the array, or null if not found.

Type:
  • number
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1222)
Focus
Focus
getLayer([layer])
Focus
Focus

Description:

Gets the LayerData from this.layers that is associated with the given layer, or null if the layer is invalid.

Parameters:

name type arguments description
layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The name of the layer from Tiled, the index of the layer in the map or Tilemap Layer. If not given will default to the maps current layer index.

Returns:
Description:

The corresponding LayerData within this.layers, or null.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1247)
Focus
Focus
getLayerIndex([layer])
Focus
Focus

Description:

Gets the LayerData index of the given layer within this.layers, or null if an invalid layer is given.

Parameters:

name type arguments description
layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The name of the layer from Tiled, the index of the layer in the map or a Tilemap Layer. If not given will default to the map's current layer index.

Returns:
Description:

The LayerData index within this.layers.

Type:
  • number
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1302)
Focus
Focus
getLayerIndexByName(name)
Focus
Focus

Description:

Gets the index of the LayerData within this.layers that has the given name, or null if an invalid name is given.

Parameters:

name type description
name string

The name of the layer to get.

Returns:
Description:

The LayerData index within this.layers.

Type:
  • number
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1337)
Focus
Focus
getObjectLayer([name])
Focus
Focus

Description:

Gets the ObjectLayer from this.objects that has the given name, or null if no ObjectLayer is found with that name.

Parameters:

name type arguments description
name string <optional>

The name of the object layer from Tiled.

Returns:
Description:

The corresponding ObjectLayer within this.objects, or null.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1264)
Focus
Focus
getObjectLayerNames()
Focus
Focus

Description:

Return a list of all valid objectgroup names loaded in this Tilemap.

Returns:
Description:

Array of valid objectgroup names / IDs loaded into this Tilemap.

Type:
  • Array.<string>
Since: 3.21.0
Source: src/tilemaps/Tilemap.js (Line 1281)
Focus
Focus
getTileAt(tileX, tileY, [nonNull], [layer])
Focus
Focus

Description:

Gets a tile at the given tile coordinates from the given layer.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments Default description
tileX number

X position to get the tile from (given in tile units, not pixels).

tileY number

Y position to get the tile from (given in tile units, not pixels).

nonNull boolean <optional> false

For empty tiles, return a Tile object with an index of -1 instead of null.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Returns a Tile, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1353)
Focus
Focus
getTileAtWorldXY(worldX, worldY, [nonNull], [camera], [layer])
Focus
Focus

Description:

Gets a tile at the given world coordinates from the given layer.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments Default description
worldX number

X position to get the tile from (given in pixels)

worldY number

Y position to get the tile from (given in pixels)

nonNull boolean <optional> false

For empty tiles, return a Tile object with an index of -1 instead of null.

camera Phaser.Cameras.Scene2D.Camera <optional>

The Camera to use when calculating the tile index from the world values.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Returns a Tile, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1377)
Focus
Focus
getTileCorners(tileX, tileY, [camera], [layer])
Focus
Focus

Description:

Returns an array of Vector2s where each entry corresponds to the corner of the requested tile.

The tileX and tileY parameters are in tile coordinates, not world coordinates.

The corner coordinates are in world space, having factored in TilemapLayer scale, position and the camera, if given.

The size of the array will vary based on the orientation of the map. For example an orthographic map will return an array of 4 vectors, where-as a hexagonal map will, of course, return an array of 6 corner vectors.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
tileX number

The x coordinate, in tiles, not pixels.

tileY number

The y coordinate, in tiles, not pixels.

camera Phaser.Cameras.Scene2D.Camera <optional>

The Camera to use when calculating the tile index from the world values.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Returns an array of Vector2s, or null if the layer given was invalid.

Type:
Since: 3.60.0
Source: src/tilemaps/Tilemap.js (Line 2548)
Focus
Focus
getTileLayerNames()
Focus
Focus

Description:

Return a list of all valid tilelayer names loaded in this Tilemap.

Returns:
Description:

Array of valid tilelayer names / IDs loaded into this Tilemap.

Type:
  • Array.<string>
Since: 3.21.0
Source: src/tilemaps/Tilemap.js (Line 1402)
Focus
Focus
getTilesWithin([tileX], [tileY], [width], [height], [filteringOptions], [layer])
Focus
Focus

Description:

Gets the tiles in the given rectangular area (in tile coordinates) of the layer.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
tileX number <optional>

The left most tile index (in tile coordinates) to use as the origin of the area.

tileY number <optional>

The top most tile index (in tile coordinates) to use as the origin of the area.

width number <optional>

How many tiles wide from the tileX index the area will be.

height number <optional>

How many tiles tall from the tileY index the area will be.

filteringOptions Phaser.Types.Tilemaps.FilteringOptions <optional>

Optional filters to apply when getting the tiles.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Returns an array of Tiles, or null if the layer given was invalid.

Type:
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1423)
Focus
Focus
getTilesWithinShape(shape, [filteringOptions], [camera], [layer])
Focus
Focus

Description:

Gets the tiles that overlap with the given shape in the given layer. The shape must be a Circle, Line, Rectangle or Triangle. The shape should be in world coordinates.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
shape Phaser.Geom.Circle | Phaser.Geom.Line | Phaser.Geom.Rectangle | Phaser.Geom.Triangle

A shape in world (pixel) coordinates

filteringOptions Phaser.Types.Tilemaps.FilteringOptions <optional>

Optional filters to apply when getting the tiles.

camera Phaser.Cameras.Scene2D.Camera <optional>

The Camera to use when factoring in which tiles to return.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Returns an array of Tiles, or null if the layer given was invalid.

Type:
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1449)
Focus
Focus
getTilesWithinWorldXY(worldX, worldY, width, height, [filteringOptions], [camera], [layer])
Focus
Focus

Description:

Gets the tiles in the given rectangular area (in world coordinates) of the layer.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
worldX number

The world x coordinate for the top-left of the area.

worldY number

The world y coordinate for the top-left of the area.

width number

The width of the area.

height number

The height of the area.

filteringOptions Phaser.Types.Tilemaps.FilteringOptions <optional>

Optional filters to apply when getting the tiles.

camera Phaser.Cameras.Scene2D.Camera <optional>

The Camera to use when factoring in which tiles to return.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Returns an array of Tiles, or null if the layer given was invalid.

Type:
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1474)
Focus
Focus
getTileset(name)
Focus
Focus

Description:

Gets the Tileset that has the given name, or null if an invalid name is given.

Parameters:

name type description
name string

The name of the Tileset to get.

Returns:
Description:

The Tileset, or null if no matching named tileset was found.

Since: 3.14.0
Source: src/tilemaps/Tilemap.js (Line 1501)
Focus
Focus
getTilesetIndex(name)
Focus
Focus

Description:

Gets the index of the Tileset within this.tilesets that has the given name, or null if an invalid name is given.

Parameters:

name type description
name string

The name of the Tileset to get.

Returns:
Description:

The Tileset index within this.tilesets.

Type:
  • number
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1518)
Focus
Focus
hasTileAt(tileX, tileY, [layer])
Focus
Focus

Description:

Checks if there is a tile at the given location (in tile coordinates) in the given layer. Returns false if there is no tile or if the tile at that location has an index of -1.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
tileX number

The x coordinate, in tiles, not pixels.

tileY number

The y coordinate, in tiles, not pixels.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Returns a boolean, or null if the layer given was invalid.

Type:
  • boolean
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1534)
Focus
Focus
hasTileAtWorldXY(worldX, worldY, [camera], [layer])
Focus
Focus

Description:

Checks if there is a tile at the given location (in world coordinates) in the given layer. Returns false if there is no tile or if the tile at that location has an index of -1.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
worldX number

The x coordinate, in pixels.

worldY number

The y coordinate, in pixels.

camera Phaser.Cameras.Scene2D.Camera <optional>

The Camera to use when factoring in which tiles to return.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Returns a boolean, or null if the layer given was invalid.

Type:
  • boolean
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1558)
Focus
Focus
putTileAt(tile, tileX, tileY, [recalculateFaces], [layer])
Focus
Focus

Description:

Puts a tile at the given tile coordinates in the specified layer. You can pass in either an index or a Tile object. If you pass in a Tile, all attributes will be copied over to the specified location. If you pass in an index, only the index at the specified location will be changed. Collision information will be recalculated at the specified location.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
tile number | Phaser.Tilemaps.Tile

The index of this tile to set or a Tile object.

tileX number

The x coordinate, in tiles, not pixels.

tileY number

The y coordinate, in tiles, not pixels.

recalculateFaces boolean <optional>

true if the faces data should be recalculated.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Returns a Tile, or null if the layer given was invalid or the coordinates were out of bounds.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1603)
Focus
Focus
putTileAtWorldXY(tile, worldX, worldY, [recalculateFaces], [camera], [layer])
Focus
Focus

Description:

Puts a tile at the given world coordinates (pixels) in the specified layer. You can pass in either an index or a Tile object. If you pass in a Tile, all attributes will be copied over to the specified location. If you pass in an index, only the index at the specified location will be changed. Collision information will be recalculated at the specified location.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
tile number | Phaser.Tilemaps.Tile

The index of this tile to set or a Tile object.

worldX number

The x coordinate, in pixels.

worldY number

The y coordinate, in pixels.

recalculateFaces boolean <optional>

true if the faces data should be recalculated.

camera Phaser.Cameras.Scene2D.Camera <optional>

The Camera to use when calculating the tile index from the world values.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Returns a Tile, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1633)
Focus
Focus
putTilesAt(tile, tileX, tileY, [recalculateFaces], [layer])
Focus
Focus

Description:

Puts an array of tiles or a 2D array of tiles at the given tile coordinates in the specified layer. The array can be composed of either tile indexes or Tile objects. If you pass in a Tile, all attributes will be copied over to the specified location. If you pass in an index, only the index at the specified location will be changed. Collision information will be recalculated within the region tiles were changed.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
tile Array.<number> | Array.<Array.<number>> | Array.<Phaser.Tilemaps.Tile> | Array.<Array.<Phaser.Tilemaps.Tile>>

A row (array) or grid (2D array) of Tiles or tile indexes to place.

tileX number

The x coordinate, in tiles, not pixels.

tileY number

The y coordinate, in tiles, not pixels.

recalculateFaces boolean <optional>

true if the faces data should be recalculated.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Returns this, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1664)
Focus
Focus
randomize([tileX], [tileY], [width], [height], [indexes], [layer])
Focus
Focus

Description:

Randomizes the indexes of a rectangular region of tiles (in tile coordinates) within the specified layer. Each tile will receive a new index. If an array of indexes is passed in, then those will be used for randomly assigning new tile indexes. If an array is not provided, the indexes found within the region (excluding -1) will be used for randomly assigning new tile indexes. This method only modifies tile indexes and does not change collision information.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
tileX number <optional>

The left most tile index (in tile coordinates) to use as the origin of the area.

tileY number <optional>

The top most tile index (in tile coordinates) to use as the origin of the area.

width number <optional>

How many tiles wide from the tileX index the area will be.

height number <optional>

How many tiles tall from the tileY index the area will be.

indexes Array.<number> <optional>

An array of indexes to randomly draw from during randomization.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Returns this, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1697)
Focus
Focus
removeAllLayers()
Focus
Focus

Description:

Removes all Tilemap Layers from this Tilemap and calls destroy on each of them.

Returns:
Description:

This Tilemap object.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1863)
Focus
Focus
removeLayer([layer])
Focus
Focus

Description:

Removes the given TilemapLayer from this Tilemap without destroying it.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to be removed.

Returns:
Description:

Returns this, or null if the layer given was invalid.

Since: 3.17.0
Source: src/tilemaps/Tilemap.js (Line 1785)
Focus
Focus
removeTile(tiles, [replaceIndex], [recalculateFaces])
Focus
Focus

Description:

Removes the given Tile, or an array of Tiles, from the layer to which they belong, and optionally recalculates the collision information.

Parameters:

name type arguments Default description
tiles Phaser.Tilemaps.Tile | Array.<Phaser.Tilemaps.Tile>

The Tile to remove, or an array of Tiles.

replaceIndex number <optional> -1

After removing the Tile, insert a brand new Tile into its location with the given index. Leave as -1 to just remove the tile.

recalculateFaces boolean <optional> true

true if the faces data should be recalculated.

Returns:
Description:

Returns an array of Tiles that were removed.

Type:
Since: 3.17.0
Source: src/tilemaps/Tilemap.js (Line 1890)
Focus
Focus
removeTileAt(tileX, tileY, [replaceWithNull], [recalculateFaces], [layer])
Focus
Focus

Description:

Removes the tile at the given tile coordinates in the specified layer and updates the layers collision information.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
tileX number

The x coordinate, in tiles, not pixels.

tileY number

The y coordinate, in tiles, not pixels.

replaceWithNull boolean <optional>

If true (the default), this will replace the tile at the specified location with null instead of a Tile with an index of -1.

recalculateFaces boolean <optional>

If true (the default), the faces data will be recalculated.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Returns the Tile that was removed, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1930)
Focus
Focus
removeTileAtWorldXY(worldX, worldY, [replaceWithNull], [recalculateFaces], [camera], [layer])
Focus
Focus

Description:

Removes the tile at the given world coordinates in the specified layer and updates the layers collision information.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
worldX number

The x coordinate, in pixels.

worldY number

The y coordinate, in pixels.

replaceWithNull boolean <optional>

If true (the default), this will replace the tile at the specified location with null instead of a Tile with an index of -1.

recalculateFaces boolean <optional>

If true (the default), the faces data will be recalculated.

camera Phaser.Cameras.Scene2D.Camera <optional>

The Camera to use when calculating the tile index from the world values.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Returns a Tile, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1958)
Focus
Focus
renderDebug(graphics, [styleConfig], [layer])
Focus
Focus

Description:

Draws a debug representation of the layer to the given Graphics object. This is helpful when you want to get a quick idea of which of your tiles are colliding and which have interesting faces. The tiles are drawn starting at (0, 0) in the Graphics, allowing you to place the debug representation wherever you want on the screen.

If no layer is specified, the maps current layer is used.

Note: This method currently only works with orthogonal tilemap layers.

Parameters:

name type arguments description
graphics Phaser.GameObjects.Graphics

The target Graphics object to draw upon.

styleConfig Phaser.Types.Tilemaps.StyleConfig <optional>

An object specifying the colors to use for the debug drawing.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Return this Tilemap object, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 1987)
Focus
Focus
renderDebugFull(graphics, [styleConfig])
Focus
Focus

Description:

Draws a debug representation of all layers within this Tilemap to the given Graphics object.

This is helpful when you want to get a quick idea of which of your tiles are colliding and which have interesting faces. The tiles are drawn starting at (0, 0) in the Graphics, allowing you to place the debug representation wherever you want on the screen.

Parameters:

name type arguments description
graphics Phaser.GameObjects.Graphics

The target Graphics object to draw upon.

styleConfig Phaser.Types.Tilemaps.StyleConfig <optional>

An object specifying the colors to use for the debug drawing.

Returns:
Description:

This Tilemap instance.

Since: 3.17.0
Source: src/tilemaps/Tilemap.js (Line 2020)
Focus
Focus
replaceByIndex(findIndex, newIndex, [tileX], [tileY], [width], [height], [layer])
Focus
Focus

Description:

Scans the given rectangular area (given in tile coordinates) for tiles with an index matching findIndex and updates their index to match newIndex. This only modifies the index and does not change collision information.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
findIndex number

The index of the tile to search for.

newIndex number

The index of the tile to replace it with.

tileX number <optional>

The left most tile index (in tile coordinates) to use as the origin of the area.

tileY number <optional>

The top most tile index (in tile coordinates) to use as the origin of the area.

width number <optional>

How many tiles wide from the tileX index the area will be.

height number <optional>

How many tiles tall from the tileY index the area will be.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Return this Tilemap object, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 2047)
Focus
Focus
setBaseTileSize(tileWidth, tileHeight)
Focus
Focus

Description:

Sets the base tile size for the map. Note: this does not necessarily match the tileWidth and tileHeight for all layers. This also updates the base size on all tiles across all layers.

Parameters:

name type description
tileWidth number

The width of the tiles the map uses for calculations.

tileHeight number

The height of the tiles the map uses for calculations.

Returns:
Description:

This Tilemap object.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 2323)
Focus
Focus
setCollision(indexes, [collides], [recalculateFaces], [layer], [updateLayer])
Focus
Focus

Description:

Sets collision on the given tile or tiles within a layer by index. You can pass in either a single numeric index or an array of indexes: [2, 3, 15, 20]. The collides parameter controls if collision will be enabled (true) or disabled (false).

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments Default description
indexes number | array

Either a single tile index, or an array of tile indexes.

collides boolean <optional>

If true it will enable collision. If false it will clear collision.

recalculateFaces boolean <optional>

Whether or not to recalculate the tile faces after the update.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

updateLayer boolean <optional> true

If true, updates the current tiles on the layer. Set to false if no tiles have been placed for significant performance boost.

Returns:
Description:

Return this Tilemap object, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 2078)
Focus
Focus
setCollisionBetween(start, stop, [collides], [recalculateFaces], [layer])
Focus
Focus

Description:

Sets collision on a range of tiles in a layer whose index is between the specified start and stop (inclusive). Calling this with a start value of 10 and a stop value of 14 would set collision for tiles 10, 11, 12, 13 and 14. The collides parameter controls if collision will be enabled (true) or disabled (false).

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
start number

The first index of the tile to be set for collision.

stop number

The last index of the tile to be set for collision.

collides boolean <optional>

If true it will enable collision. If false it will clear collision.

recalculateFaces boolean <optional>

Whether or not to recalculate the tile faces after the update.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Return this Tilemap object, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 2111)
Focus
Focus
setCollisionByExclusion(indexes, [collides], [recalculateFaces], [layer])
Focus
Focus

Description:

Sets collision on all tiles in the given layer, except for tiles that have an index specified in the given array. The collides parameter controls if collision will be enabled (true) or disabled (false). Tile indexes not currently in the layer are not affected.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
indexes Array.<number>

An array of the tile indexes to not be counted for collision.

collides boolean <optional>

If true it will enable collision. If false it will clear collision.

recalculateFaces boolean <optional>

Whether or not to recalculate the tile faces after the update.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Return this Tilemap object, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 2179)
Focus
Focus
setCollisionByProperty(properties, [collides], [recalculateFaces], [layer])
Focus
Focus

Description:

Sets collision on the tiles within a layer by checking tile properties. If a tile has a property that matches the given properties object, its collision flag will be set. The collides parameter controls if collision will be enabled (true) or disabled (false). Passing in { collides: true } would update the collision flag on any tiles with a "collides" property that has a value of true. Any tile that doesn't have "collides" set to true will be ignored. You can also use an array of values, e.g. { types: ["stone", "lava", "sand" ] }. If a tile has a "types" property that matches any of those values, its collision flag will be updated.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
properties object

An object with tile properties and corresponding values that should be checked.

collides boolean <optional>

If true it will enable collision. If false it will clear collision.

recalculateFaces boolean <optional>

Whether or not to recalculate the tile faces after the update.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Return this Tilemap object, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 2144)
Focus
Focus
setCollisionFromCollisionGroup([collides], [recalculateFaces], [layer])
Focus
Focus

Description:

Sets collision on the tiles within a layer by checking each tiles collision group data (typically defined in Tiled within the tileset collision editor). If any objects are found within a tiles collision group, the tiles colliding information will be set. The collides parameter controls if collision will be enabled (true) or disabled (false).

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
collides boolean <optional>

If true it will enable collision. If false it will clear collision.

recalculateFaces boolean <optional>

Whether or not to recalculate the tile faces after the update.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Return this Tilemap object, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 2210)
Focus
Focus
setLayer([layer])
Focus
Focus

Description:

Sets the current layer to the LayerData associated with layer.

Parameters:

name type arguments description
layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The name of the layer from Tiled, the index of the layer in the map or a TilemapLayer. If not given will default to the maps current layer index.

Returns:
Description:

This Tilemap object.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 2301)
Focus
Focus
setLayerTileSize(tileWidth, tileHeight, [layer])
Focus
Focus

Description:

Sets the tile size for a specific layer. Note: this does not necessarily match the maps tileWidth and tileHeight for all layers. This will set the tile size for the layer and any tiles the layer has.

Parameters:

name type arguments description
tileWidth number

The width of the tiles (in pixels) in the layer.

tileHeight number

The height of the tiles (in pixels) in the layer.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The name of the layer from Tiled, the index of the layer in the map or a TilemapLayer. If not given will default to the maps current layer index.

Returns:
Description:

This Tilemap object.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 2369)
Focus
Focus
setRenderOrder(renderOrder)
Focus
Focus

Description:

Sets the rendering (draw) order of the tiles in this map.

The default is 'right-down', meaning it will order the tiles starting from the top-left, drawing to the right and then moving down to the next row.

The draw orders are:

0 = right-down 1 = left-down 2 = right-up 3 = left-up

Setting the render order does not change the tiles or how they are stored in the layer, it purely impacts the order in which they are rendered.

You can provide either an integer (0 to 3), or the string version of the order.

Calling this method after creating Tilemap Layers will not automatically update them to use the new render order. If you call this method after creating layers, use their own setRenderOrder methods to change them as needed.

Parameters:

name type description
renderOrder number | string

The render (draw) order value. Either an integer between 0 and 3, or a string: 'right-down', 'left-down', 'right-up' or 'left-up'.

Returns:
Description:

This Tilemap object.

Since: 3.12.0
Source: src/tilemaps/Tilemap.js (Line 324)
Focus
Focus
setTileIndexCallback(indexes, callback, callbackContext, [layer])
Focus
Focus

Description:

Sets a global collision callback for the given tile index within the layer. This will affect all tiles on this layer that have the same index. If a callback is already set for the tile index it will be replaced. Set the callback to null to remove it. If you want to set a callback for a tile at a specific location on the map then see setTileLocationCallback.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
indexes number | Array.<number>

Either a single tile index, or an array of tile indexes to have a collision callback set for. All values should be integers.

callback function

The callback that will be invoked when the tile is collided with.

callbackContext object

The context under which the callback is called.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Return this Tilemap object, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 2241)
Focus
Focus
setTileLocationCallback(tileX, tileY, width, height, callback, [callbackContext], [layer])
Focus
Focus

Description:

Sets a collision callback for the given rectangular area (in tile coordinates) within the layer. If a callback is already set for the tile index it will be replaced. Set the callback to null to remove it.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
tileX number

The left most tile index (in tile coordinates) to use as the origin of the area.

tileY number

The top most tile index (in tile coordinates) to use as the origin of the area.

width number

How many tiles wide from the tileX index the area will be.

height number

How many tiles tall from the tileY index the area will be.

callback function

The callback that will be invoked when the tile is collided with.

callbackContext object <optional>

The context under which the callback is called.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Return this Tilemap object, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 2270)
Focus
Focus
shuffle([tileX], [tileY], [width], [height], [layer])
Focus
Focus

Description:

Shuffles the tiles in a rectangular region (specified in tile coordinates) within the given layer. It will only randomize the tiles in that area, so if they're all the same nothing will appear to have changed! This method only modifies tile indexes and does not change collision information.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
tileX number <optional>

The left most tile index (in tile coordinates) to use as the origin of the area.

tileY number <optional>

The top most tile index (in tile coordinates) to use as the origin of the area.

width number <optional>

How many tiles wide from the tileX index the area will be.

height number <optional>

How many tiles tall from the tileY index the area will be.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Return this Tilemap object, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 2412)
Focus
Focus
swapByIndex(tileA, tileB, [tileX], [tileY], [width], [height], [layer])
Focus
Focus

Description:

Scans the given rectangular area (given in tile coordinates) for tiles with an index matching indexA and swaps then with indexB. This only modifies the index and does not change collision information.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
tileA number

First tile index.

tileB number

Second tile index.

tileX number <optional>

The left most tile index (in tile coordinates) to use as the origin of the area.

tileY number <optional>

The top most tile index (in tile coordinates) to use as the origin of the area.

width number <optional>

How many tiles wide from the tileX index the area will be.

height number <optional>

How many tiles tall from the tileY index the area will be.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Return this Tilemap object, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 2442)
Focus
Focus
tileToWorldX(tileX, [camera], [layer])
Focus
Focus

Description:

Converts from tile X coordinates (tile units) to world X coordinates (pixels), factoring in the layers position, scale and scroll.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
tileX number

The x coordinate, in tiles, not pixels.

camera Phaser.Cameras.Scene2D.Camera <optional>

The Camera to use when calculating the tile index from the world values.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Returns a number, or null if the layer given was invalid.

Type:
  • number
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 2473)
Focus
Focus
tileToWorldXY(tileX, tileY, [vec2], [camera], [layer])
Focus
Focus

Description:

Converts from tile XY coordinates (tile units) to world XY coordinates (pixels), factoring in the layers position, scale and scroll. This will return a new Vector2 object or update the given point object.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
tileX number

The x coordinate, in tiles, not pixels.

tileY number

The y coordinate, in tiles, not pixels.

vec2 Phaser.Math.Vector2 <optional>

A Vector2 to store the coordinates in. If not given a new Vector2 is created.

camera Phaser.Cameras.Scene2D.Camera <optional>

The Camera to use when calculating the tile index from the world values.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Returns a Vector2, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 2521)
Focus
Focus
tileToWorldY(tileY, [camera], [layer])
Focus
Focus

Description:

Converts from tile Y coordinates (tile units) to world Y coordinates (pixels), factoring in the layers position, scale and scroll.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
tileY number

The y coordinate, in tiles, not pixels.

camera Phaser.Cameras.Scene2D.Camera <optional>

The Camera to use when calculating the tile index from the world values.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Returns a number, or null if the layer given was invalid.

Type:
  • number
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 2497)
Focus
Focus
weightedRandomize(weightedIndexes, [tileX], [tileY], [width], [height], [layer])
Focus
Focus

Description:

Randomizes the indexes of a rectangular region of tiles (in tile coordinates) within the specified layer. Each tile will receive a new index. New indexes are drawn from the given weightedIndexes array. An example weighted array:

[ { index: 6, weight: 4 }, // Probability of index 6 is 4 / 8 { index: 7, weight: 2 }, // Probability of index 7 would be 2 / 8 { index: 8, weight: 1.5 }, // Probability of index 8 would be 1.5 / 8 { index: 26, weight: 0.5 } // Probability of index 27 would be 0.5 / 8 ]

The probability of any index being picked is (the indexs weight) / (sum of all weights). This method only modifies tile indexes and does not change collision information.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
weightedIndexes Array.<object>

An array of objects to randomly draw from during randomization. They should be in the form: { index: 0, weight: 4 } or { index: [0, 1], weight: 4 } if you wish to draw from multiple tile indexes.

tileX number <optional>

The left most tile index (in tile coordinates) to use as the origin of the area.

tileY number <optional>

The top most tile index (in tile coordinates) to use as the origin of the area.

width number <optional>

How many tiles wide from the tileX index the area will be.

height number <optional>

How many tiles tall from the tileY index the area will be.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Return this Tilemap object, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 2581)
Focus
Focus
worldToTileX(worldX, [snapToFloor], [camera], [layer])
Focus
Focus

Description:

Converts from world X coordinates (pixels) to tile X coordinates (tile units), factoring in the layers position, scale and scroll.

If no layer is specified, the maps current layer is used.

You cannot call this method for Isometric or Hexagonal tilemaps as they require both worldX and worldY values to determine the correct tile, instead you should use the worldToTileXY method.

Parameters:

name type arguments description
worldX number

The x coordinate to be converted, in pixels, not tiles.

snapToFloor boolean <optional>

Whether or not to round the tile coordinate down to the nearest integer.

camera Phaser.Cameras.Scene2D.Camera <optional>

The Camera to use when calculating the tile index from the world values.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Returns a number, or null if the layer given was invalid.

Type:
  • number
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 2621)
Focus
Focus
worldToTileXY(worldX, worldY, [snapToFloor], [vec2], [camera], [layer])
Focus
Focus

Description:

Converts from world XY coordinates (pixels) to tile XY coordinates (tile units), factoring in the layers position, scale and scroll. This will return a new Vector2 object or update the given point object.

If no layer is specified, the maps current layer is used.

Parameters:

name type arguments description
worldX number

The x coordinate to be converted, in pixels, not tiles.

worldY number

The y coordinate to be converted, in pixels, not tiles.

snapToFloor boolean <optional>

Whether or not to round the tile coordinate down to the nearest integer.

vec2 Phaser.Math.Vector2 <optional>

A Vector2 to store the coordinates in. If not given a new Vector2 is created.

camera Phaser.Cameras.Scene2D.Camera <optional>

The Camera to use when calculating the tile index from the world values.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Returns a vec2, or null if the layer given was invalid.

Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 2679)
Focus
Focus
worldToTileY(worldY, [snapToFloor], [camera], [layer])
Focus
Focus

Description:

Converts from world Y coordinates (pixels) to tile Y coordinates (tile units), factoring in the layers position, scale and scroll.

If no layer is specified, the maps current layer is used.

You cannot call this method for Isometric or Hexagonal tilemaps as they require both worldX and worldY values to determine the correct tile, instead you should use the worldToTileXY method.

Parameters:

name type arguments description
worldY number

The y coordinate to be converted, in pixels, not tiles.

snapToFloor boolean <optional>

Whether or not to round the tile coordinate down to the nearest integer.

camera Phaser.Cameras.Scene2D.Camera <optional>

The Camera to use when calculating the tile index from the world values.

layer string | number | Phaser.Tilemaps.TilemapLayer <optional>

The tile layer to use. If not given the current layer is used.

Returns:
Description:

Returns a number, or null if the layer given was invalid.

Type:
  • number
Since: 3.0.0
Source: src/tilemaps/Tilemap.js (Line 2650)
Focus
Focus