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 41)
Members
-
currentLayerIndex :number
-
The index of the currently selected LayerData object.
Type:
- number
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 262)
-
format :number
-
The format of the map data.
Type:
- number
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 172)
-
height :number
-
The height of the map (in tiles).
Type:
- number
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 136)
-
heightInPixels :number
-
The height of the map in pixels based on height * tileHeight.
Type:
- number
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 208)
-
hexSideLength :number
-
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 271)
-
imageCollections :Array.<Phaser.Tilemaps.ImageCollection>
-
A collection of Images, as parsed from Tiled map data.
Type:
- Array.<Phaser.Tilemaps.ImageCollection>
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 217)
-
images :array
-
An array of Tiled Image Layers.
Type:
- array
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 226)
-
layer :Phaser.Tilemaps.LayerData
-
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 1504)
-
layers :Array.<Phaser.Tilemaps.LayerData>
-
An array of Tilemap layer data.
Type:
- Array.<Phaser.Tilemaps.LayerData>
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 235)
-
objects :Array.<Phaser.Tilemaps.ObjectLayer>
-
An array of ObjectLayer instances parsed from Tiled object layers.
Type:
- Array.<Phaser.Tilemaps.ObjectLayer>
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 253)
-
orientation :string
-
The orientation of the map data (as specified in Tiled), usually 'orthogonal'.
Type:
- string
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 145)
-
properties :object
-
Map specific properties as specified in Tiled.
Type:
- object
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 190)
-
renderOrder :string
-
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 154)
-
scene :Phaser.Scene
-
Type:
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 100)
-
tileHeight :number
-
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 117)
-
tilesets :Array.<Phaser.Tilemaps.Tileset>
-
An array of Tilesets used in the map.
Type:
- Array.<Phaser.Tilemaps.Tileset>
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 244)
-
tileWidth :number
-
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 107)
-
version :number
-
The version of the map data (as specified in Tiled, usually 1).
Type:
- number
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 181)
-
width :number
-
The width of the map (in tiles).
Type:
- number
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 127)
-
widthInPixels :number
-
The width of the map in pixels based on width * tileWidth.
Type:
- number
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 199)
Methods
-
addTilesetImage(tilesetName [, key] [, tileWidth] [, tileHeight] [, tileMargin] [, tileSpacing] [, gid])
-
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 Argument 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
ornull
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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 378)
Returns:
Returns the Tileset object that was created or updated, or null if it failed.
-
calculateFacesAt(tileX, tileY [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1650)
Returns:
Returns this, or null if the layer given was invalid.
-
calculateFacesWithin( [tileX] [, tileY] [, width] [, height] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1677)
Returns:
Returns this, or null if the layer given was invalid.
-
copy(srcTileX, srcTileY, width, height, destTileX, destTileY [, recalculateFaces] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 452)
Returns:
Returns this, or null if the layer given was invalid.
-
createBlankLayer(name, tileset [, x] [, y] [, width] [, height] [, tileWidth] [, tileHeight])
-
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 Argument Default 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>
0 The world x position where the top left of this layer will be placed.
y
number <optional>
0 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 494)
Returns:
Returns the new layer that was created, or
null
if it failed. -
createFromObjects(objectLayerName, config)
-
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 3 criteria: The Object ID, the Object GID or the Object Name.
Within Tiled, Object IDs are unique per Object. Object GIDs, however, are shared by all objects using the same image. Finally, Object Names are strings and the same name can be used on multiple Objects in Tiled, they do not have to be unique.
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
, 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
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 extendPhaser.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.All properties from object are copied into the Game Object, so you can use this as an easy way to configure properties from within the map editor. For example giving an object a property of
alpha: 0.5
in Tiled will be reflected in the Game Object that is created.Custom object properties that do not exist as a Game Object property are set in the Game Objects data store.
You can use set a
container
property in the config. If given, the class will be added to the Container instance instead of the Scene.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 } ]);
The signature of this method changed significantly in v3.50.0. Prior to this, it did not take config objects.
Parameters:
Name Type 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 634)
Returns:
An array containing the Game Objects that were created. Empty if invalid object layer, or no matching id/gid/name was found.
- Type
- Array.<Phaser.GameObjects.GameObject>
-
createFromTiles(indexes, replacements, spriteConfig [, scene] [, camera] [, layer])
-
Creates a Sprite for every object 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. 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.
Parameters:
Name Type Argument 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 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 862)
Returns:
Returns an array of Tiles, or null if the layer given was invalid.
- Type
- Array.<Phaser.GameObjects.Sprite>
-
createLayer(layerID, tileset [, x] [, y])
-
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 Argument Default 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>
0 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>
0 The y position to place the layer in the world. If not specified, it will default to the layer offset from Tiled or 0.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 566)
Returns:
Returns the new layer was created, or null if it failed.
-
destroy()
-
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 2587)
-
destroyLayer( [layer])
-
Destroys the given TilemapLayer and removes it from this Tilemap.
If no layer is specified, the maps current layer is used.
Parameters:
Name Type Argument Description layer
string | number | Phaser.Tilemaps.TilemapLayer <optional>
The tile layer to be destroyed.
- Since: 3.17.0
- Source: src/tilemaps/Tilemap.js (Line 1747)
Returns:
Returns this, or null if the layer given was invalid.
-
fill(index [, tileX] [, tileY] [, width] [, height] [, recalculateFaces] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 891)
Returns:
Returns this, or null if the layer given was invalid.
-
filterObjects(objectLayer, callback [, context])
-
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 returned as a new array. Similar to Array.prototype.Filter in vanilla JS.
Parameters:
Name Type Argument Description objectLayer
Phaser.Tilemaps.ObjectLayer | string 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 925)
Returns:
An array of object that match the search, or null if the objectLayer given was invalid.
- Type
- Array.<Phaser.Types.Tilemaps.TiledObject>
-
filterTiles(callback [, context] [, tileX] [, tileY] [, width] [, height] [, filteringOptions] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 957)
Returns:
Returns an array of Tiles, or null if the layer given was invalid.
- Type
- Array.<Phaser.Tilemaps.Tile>
-
findByIndex(index [, skip] [, reverse] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 988)
Returns:
Returns a Tiles, or null if the layer given was invalid.
- Type
- Phaser.Tilemaps.Tile
-
findObject(objectLayer, callback [, context])
-
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 Argument Description objectLayer
Phaser.Tilemaps.ObjectLayer | string 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1015)
Returns:
An object that matches the search, or null if no object found.
-
findTile(callback [, context] [, tileX] [, tileY] [, width] [, height] [, filteringOptions] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1047)
Returns:
Returns a Tiles, or null if the layer given was invalid.
- Type
- Phaser.Tilemaps.Tile
-
forEachTile(callback [, context] [, tileX] [, tileY] [, width] [, height] [, filteringOptions] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1076)
Returns:
Returns this, or null if the layer given was invalid.
-
getImageIndex(name)
-
Gets the image layer index based on its name.
Parameters:
Name Type Description name
string The name of the image to get.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1107)
Returns:
The index of the image in this tilemap, or null if not found.
- Type
- number
-
getImageLayerNames()
-
Return a list of all valid imagelayer names loaded in this Tilemap.
- Since: 3.21.0
- Source: src/tilemaps/Tilemap.js (Line 1122)
Returns:
Array of valid imagelayer names / IDs loaded into this Tilemap.
- Type
- Array.<string>
-
getIndex(location, name)
-
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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1143)
Returns:
The index of the element in the array, or null if not found.
- Type
- number
-
getLayer( [layer])
-
Gets the LayerData from
this.layers
that is associated with the givenlayer
, or null if the layer is invalid.Parameters:
Name Type Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1168)
Returns:
The corresponding LayerData within this.layers.
-
getLayerIndex( [layer])
-
Gets the LayerData index of the given
layer
within this.layers, or null if an invalidlayer
is given.Parameters:
Name Type Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1223)
Returns:
The LayerData index within this.layers.
- Type
- number
-
getLayerIndexByName(name)
-
Gets the index of the LayerData within this.layers that has the given
name
, or null if an invalidname
is given.Parameters:
Name Type Description name
string The name of the layer to get.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1258)
Returns:
The LayerData index within this.layers.
- Type
- number
-
getObjectLayer( [name])
-
Gets the ObjectLayer from
this.objects
that has the givenname
, or null if no ObjectLayer is found with that name.Parameters:
Name Type Argument Description name
string <optional>
The name of the object layer from Tiled.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1185)
Returns:
The corresponding
ObjectLayer
withinthis.objects
, or null. -
getObjectLayerNames()
-
Return a list of all valid objectgroup names loaded in this Tilemap.
- Since: 3.21.0
- Source: src/tilemaps/Tilemap.js (Line 1202)
Returns:
Array of valid objectgroup names / IDs loaded into this Tilemap.
- Type
- Array.<string>
-
getTileAt(tileX, tileY [, nonNull] [, layer])
-
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 Argument 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>
If true getTile won't return null for empty tiles, but a Tile object with an index of -1.
layer
string | number | Phaser.Tilemaps.TilemapLayer <optional>
The tile layer to use. If not given the current layer is used.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1274)
Returns:
Returns a Tile, or null if the layer given was invalid.
- Type
- Phaser.Tilemaps.Tile
-
getTileAtWorldXY(worldX, worldY [, nonNull] [, camera] [, layer])
-
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 Argument 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>
If true, function won't return null for empty tiles, but a Tile object with an index of -1.
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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1298)
Returns:
Returns a Tile, or null if the layer given was invalid.
- Type
- Phaser.Tilemaps.Tile
-
getTileLayerNames()
-
Return a list of all valid tilelayer names loaded in this Tilemap.
- Since: 3.21.0
- Source: src/tilemaps/Tilemap.js (Line 1323)
Returns:
Array of valid tilelayer names / IDs loaded into this Tilemap.
- Type
- Array.<string>
-
getTileset(name)
-
Gets the Tileset that has the given
name
, or null if an invalidname
is given.Parameters:
Name Type Description name
string The name of the Tileset to get.
- Since: 3.14.0
- Source: src/tilemaps/Tilemap.js (Line 1422)
Returns:
The Tileset, or
null
if no matching named tileset was found. -
getTilesetIndex(name)
-
Gets the index of the Tileset within this.tilesets that has the given
name
, or null if an invalidname
is given.Parameters:
Name Type Description name
string The name of the Tileset to get.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1439)
Returns:
The Tileset index within this.tilesets.
- Type
- number
-
getTilesWithin( [tileX] [, tileY] [, width] [, height] [, filteringOptions] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1344)
Returns:
Returns an array of Tiles, or null if the layer given was invalid.
- Type
- Array.<Phaser.Tilemaps.Tile>
-
getTilesWithinShape(shape [, filteringOptions] [, camera] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1370)
Returns:
Returns an array of Tiles, or null if the layer given was invalid.
- Type
- Array.<Phaser.Tilemaps.Tile>
-
getTilesWithinWorldXY(worldX, worldY, width, height [, filteringOptions] [, camera] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1395)
Returns:
Returns an array of Tiles, or null if the layer given was invalid.
- Type
- Array.<Phaser.Tilemaps.Tile>
-
hasTileAt(tileX, tileY [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1455)
Returns:
Returns a boolean, or null if the layer given was invalid.
- Type
- boolean
-
hasTileAtWorldXY(worldX, worldY [, camera] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1479)
Returns:
Returns a boolean, or null if the layer given was invalid.
- Type
- boolean
-
putTileAt(tile, tileX, tileY [, recalculateFaces] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1524)
Returns:
Returns a Tile, or null if the layer given was invalid or the coordinates were out of bounds.
- Type
- Phaser.Tilemaps.Tile
-
putTileAtWorldXY(tile, worldX, worldY [, recalculateFaces] [, camera] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1554)
Returns:
Returns a Tile, or null if the layer given was invalid.
- Type
- Phaser.Tilemaps.Tile
-
putTilesAt(tile, tileX, tileY [, recalculateFaces] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1585)
Returns:
Returns this, or null if the layer given was invalid.
-
randomize( [tileX] [, tileY] [, width] [, height] [, indexes] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1618)
Returns:
Returns this, or null if the layer given was invalid.
-
removeAllLayers()
-
Removes all Tilemap Layers from this Tilemap and calls
destroy
on each of them.- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1784)
Returns:
This Tilemap object.
-
removeLayer( [layer])
-
Removes the given TilemapLayer from this Tilemap without destroying it.
If no layer is specified, the maps current layer is used.
Parameters:
Name Type Argument Description layer
string | number | Phaser.Tilemaps.TilemapLayer <optional>
The tile layer to be removed.
- Since: 3.17.0
- Source: src/tilemaps/Tilemap.js (Line 1706)
Returns:
Returns this, or null if the layer given was invalid.
-
removeTile(tiles [, replaceIndex] [, recalculateFaces])
-
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 Argument 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.- Since: 3.17.0
- Source: src/tilemaps/Tilemap.js (Line 1811)
Returns:
Returns an array of Tiles that were removed.
- Type
- Array.<Phaser.Tilemaps.Tile>
-
removeTileAt(tileX, tileY [, replaceWithNull] [, recalculateFaces] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1851)
Returns:
Returns the Tile that was removed, or null if the layer given was invalid.
- Type
- Phaser.Tilemaps.Tile
-
removeTileAtWorldXY(worldX, worldY [, replaceWithNull] [, recalculateFaces] [, camera] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1879)
Returns:
Returns a Tile, or null if the layer given was invalid.
- Type
- Phaser.Tilemaps.Tile
-
renderDebug(graphics [, styleConfig] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1908)
Returns:
Return this Tilemap object, or null if the layer given was invalid.
-
renderDebugFull(graphics [, styleConfig])
-
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 Argument 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.
- Since: 3.17.0
- Source: src/tilemaps/Tilemap.js (Line 1941)
Returns:
This Tilemap instance.
-
replaceByIndex(findIndex, newIndex [, tileX] [, tileY] [, width] [, height] [, layer])
-
Scans the given rectangular area (given in tile coordinates) for tiles with an index matching
findIndex
and updates their index to matchnewIndex
. 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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1968)
Returns:
Return this Tilemap object, or null if the layer given was invalid.
-
setBaseTileSize(tileWidth, tileHeight)
-
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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 2244)
Returns:
This Tilemap object.
-
setCollision(indexes [, collides] [, recalculateFaces] [, layer] [, updateLayer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 1999)
Returns:
Return this Tilemap object, or null if the layer given was invalid.
-
setCollisionBetween(start, stop [, collides] [, recalculateFaces] [, layer])
-
Sets collision on a range of tiles in a layer whose index is between the specified
start
andstop
(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. Thecollides
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 2032)
Returns:
Return this Tilemap object, or null if the layer given was invalid.
-
setCollisionByExclusion(indexes [, collides] [, recalculateFaces] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 2100)
Returns:
Return this Tilemap object, or null if the layer given was invalid.
-
setCollisionByProperty(properties [, collides] [, recalculateFaces] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 2065)
Returns:
Return this Tilemap object, or null if the layer given was invalid.
-
setCollisionFromCollisionGroup( [collides] [, recalculateFaces] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 2131)
Returns:
Return this Tilemap object, or null if the layer given was invalid.
-
setLayer( [layer])
-
Sets the current layer to the LayerData associated with
layer
.Parameters:
Name Type Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 2222)
Returns:
This Tilemap object.
-
setLayerTileSize(tileWidth, tileHeight [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 2290)
Returns:
This Tilemap object.
-
setRenderOrder(renderOrder)
-
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'.
- Since: 3.12.0
- Source: src/tilemaps/Tilemap.js (Line 332)
Returns:
This Tilemap object.
-
setTileIndexCallback(indexes, callback, callbackContext [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 2162)
Returns:
Return this Tilemap object, or null if the layer given was invalid.
-
setTileLocationCallback(tileX, tileY, width, height, callback [, callbackContext] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 2191)
Returns:
Return this Tilemap object, or null if the layer given was invalid.
-
shuffle( [tileX] [, tileY] [, width] [, height] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 2333)
Returns:
Return this Tilemap object, or null if the layer given was invalid.
-
swapByIndex(tileA, tileB [, tileX] [, tileY] [, width] [, height] [, layer])
-
Scans the given rectangular area (given in tile coordinates) for tiles with an index matching
indexA
and swaps then withindexB
. 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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 2363)
Returns:
Return this Tilemap object, or null if the layer given was invalid.
-
tileToWorldX(tileX [, camera] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 2394)
Returns:
Returns a number, or null if the layer given was invalid.
- Type
- number
-
tileToWorldXY(tileX, tileY [, vec2] [, camera] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 2442)
Returns:
Returns a Vector2, or null if the layer given was invalid.
- Type
- Phaser.Math.Vector2
-
tileToWorldY(tileY [, camera] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 2418)
Returns:
Returns a number, or null if the layer given was invalid.
- Type
- number
-
weightedRandomize(weightedIndexes [, tileX] [, tileY] [, width] [, height] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 2469)
Returns:
Return this Tilemap object, or null if the layer given was invalid.
-
worldToTileX(worldX [, snapToFloor] [, camera] [, layer])
-
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.
Parameters:
Name Type Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 2509)
Returns:
Returns a number, or null if the layer given was invalid.
- Type
- number
-
worldToTileXY(worldX, worldY [, snapToFloor] [, vec2] [, camera] [, layer])
-
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 Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 2559)
Returns:
Returns a vec2, or null if the layer given was invalid.
- Type
- Phaser.Math.Vector2
-
worldToTileY(worldY [, snapToFloor] [, camera] [, layer])
-
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.
Parameters:
Name Type Argument 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.
- Since: 3.0.0
- Source: src/tilemaps/Tilemap.js (Line 2534)
Returns:
Returns a number, or null if the layer given was invalid.
- Type
- number