Phaser.QuadTree¶
new QuadTree(x, y, width, height, maxObjects, maxLevels, level)¶
A QuadTree implementation. The original code was a conversion of the Java code posted to GameDevTuts. However I've tweaked it massively to add node indexing, removed lots of temp. var creation and significantly increased performance as a result. Original version at https://github.com/timohausmann/quadtree-js/
Parameters:¶
Name | Type | Argument | Default | Description |
---|---|---|---|---|
x | number | The top left coordinate of the quadtree. | ||
y | number | The top left coordinate of the quadtree. | ||
width | number | The width of the quadtree in pixels. | ||
height | number | The height of the quadtree in pixels. | ||
maxObjects | number | <optional> | 10 | The maximum number of objects per node. |
maxLevels | number | <optional> | 4 | The maximum number of levels to iterate to. |
level | number | <optional> | 0 | Which level is this? |
Source - math/QuadTree.js, line 23
Members¶
maxLevels:number¶
The maximum number of levels to break down to.
Default Value: - 4
Source - math/QuadTree.js, line 35
maxObjects:number¶
The maximum number of objects per node.
Default Value: - 10
Source - math/QuadTree.js, line 29
getIndex(rect)→ {number}¶
Determine which node the object belongs to.
Parameters:¶
Name | Type | Description |
---|---|---|
rect | Phaser.Rectangle | object | The bounds in which to check. |
Returns:¶
number-
index - Index of the subnode (0-3), or -1 if rect cannot completely fit within a subnode and is part of the parent node.
Source - math/QuadTree.js, line 203
insert(body)¶
Insert the object into the node. If the node exceeds the capacity, it will split and add all objects to their corresponding subnodes.
Parameters:¶
Name | Type | Description |
---|---|---|
body | Phaser.Physics.Arcade.Body | object | The Body object to insert into the quadtree. Can be any object so long as it exposes x, y, right and bottom properties. |
Source - math/QuadTree.js, line 151
populate(group)¶
Populates this quadtree with the children of the given Group. In order to be added the child must exist and have a body property.
Parameters:¶
Name | Type | Description |
---|---|---|
group | Phaser.Group | The Group to add to the quadtree. |
Source - math/QuadTree.js, line 103
populateHandler(sprite)¶
Handler for the populate method.
Parameters:¶
Name | Type | Description |
---|---|---|
sprite | Phaser.Sprite | object | The Sprite to check. |
Source - math/QuadTree.js, line 115
reset(x, y,width, height, maxObjects, maxLevels, level)¶
Resets the QuadTree.
Parameters:¶
Name | Type | Argument | Default | Description |
---|---|---|---|---|
x | number | The top left coordinate of the quadtree. | ||
y | number | The top left coordinate of the quadtree. | ||
width | number | The width of the quadtree in pixels. | ||
height | number | The height of the quadtree in pixels. | ||
maxObjects | number | <optional> | 10 | The maximum number of objects per node. |
maxLevels | number | <optional> | 4 | The maximum number of levels to iterate to. |
level | number | <optional> | 0 | Which level is this? |
Source - math/QuadTree.js, line 69