Phaser API Documentation

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.


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.


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

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