Класс: Phaser.QuadTree
Конструктор
new QuadTree(x, y, width, height, maxObjects, maxLevels, level)
Реализация QuadTree. Исходный код был конвертирован из Java-кода, опубликованного на GameDevTuts.
Однако я существенно его переработал, добавив индексацию узлов, удалив множество временных переменных и значительно увеличив производительность в результате.
Оригинальная версия на https://github.com/timohausmann/quadtree-js/
Параметры
| Имя | Тип | Аргумент | Значение по умолчанию | Описание |
|---|---|---|---|---|
x | число | Координата верхнего левого угла quadtree. | ||
y | число | Координата верхнего левого угла quadtree. | ||
width | число | Ширина quadtree в пикселях. | ||
height | число | Высота quadtree в пикселях. | ||
maxObjects | число | <необязательно> | 10 | Максимальное количество объектов на узел. |
maxLevels | число | <необязательно> | 4 | Максимальное количество уровней итераций. |
level | число | <необязательно> | 0 | Какой уровень? |
- Исходный код: math/QuadTree.js (Строка 23)
Общедоступные свойства
- Исходный код: math/QuadTree.js (Строка 45)
- Исходный код: math/QuadTree.js (Строка 40)
- Значение по умолчанию
- 4
- Исходный код: math/QuadTree.js (Строка 35)
- Значение по умолчанию
- 10
- Исходный код: math/QuadTree.js (Строка 29)
- Исходный код: math/QuadTree.js (Строка 55)
- Исходный код: math/QuadTree.js (Строка 50)
bounds : Объект
Объект, содержащий границы quadtree.
level : число
Текущий уровень.
maxLevels : число
Максимальное количество уровней разбиения.
maxObjects : число
Максимальное количество объектов на узел.
nodes : массив
Массив связанных дочерних узлов.
objects : массив
Массив дочерних элементов quadtree.
Общедоступные методы
- Исходный код: math/QuadTree.js (Строка 295)
- Исходный код: math/QuadTree.js (Строка 203)
- Исходный код: math/QuadTree.js (Строка 151)
- Исходный код: math/QuadTree.js (Строка 103)
- Исходный код: math/QuadTree.js (Строка 115)
- Исходный код: math/QuadTree.js (Строка 69)
- Массив со всеми обнаруженными объектами.
- Исходный код: math/QuadTree.js (Строка 247)
- Исходный код: math/QuadTree.js (Строка 130)
clear()
Очистить кваддерево.
getIndex(rect) → {число}
Определить, к какому узлу принадлежит объект.
Параметры
| Имя | Тип | Описание |
|---|---|---|
rect | Phaser.Rectangle | объект | Границы, в которых необходимо проверить. |
Возвращает
индекс - Индекс дочернего узла (0-3) или -1, если прямоугольник не может полностью поместиться в дочернем узле и является частью родительского узла.
insert(body)
Вставить объект в узел. Если узел превышает емкость, он разделится, и все объекты будут добавлены в соответствующие дочерние узлы.
Параметры
| Имя | Тип | Описание |
|---|---|---|
body | Phaser.Physics.Arcade.Body | объект | Объект Body для вставки в кваддерево. Может быть любым объектом, если он предоставляет свойства x, y, right и bottom. |
populate(group)
Заполняет это кваддерево дочерними элементами заданной группы. Чтобы элемент был добавлен, он должен существовать и иметь свойство body.
Параметры
| Имя | Тип | Описание |
|---|---|---|
group | Phaser.Group | Группа для добавления в кваддерево. |
populateHandler(sprite)
Обработчик метода populate.
Параметры
| Имя | Тип | Описание |
|---|---|---|
sprite | Phaser.Sprite | объект | Проверяемый спрайт. |
reset(x, y, width, height, maxObjects, maxLevels, level)
Сбросить кваддерево.
Параметры
| Имя | Тип | Аргумент | По умолчанию | Описание |
|---|---|---|---|---|
x | число | Координаты верхнего левого угла кваддерева. | ||
y | число | Координаты верхнего левого угла кваддерева. | ||
width | число | Ширина кваддерева в пикселях. | ||
height | число | Высота кваддерева в пикселях. | ||
maxObjects | число | <необязательный> | 10 | Максимальное количество объектов на узел. |
maxLevels | число | <необязательный> | 4 | Максимальное количество уровней для итерации. |
level | число | <необязательный> | 0 | Какой это уровень? |
retrieve(source) → {массив}
Возвращает все объекты, которые могут сталкиваться с заданным спрайтом или прямоугольником.
Параметры
| Имя | Тип | Описание |
|---|---|---|
source | Phaser.Sprite | Phaser.Rectangle | Объект-источник для проверки кваддерева. Спрайт или прямоугольник. |
Возвращает
split()
Разделить узел на 4 подузла
© 2016 Richard Davey, Photon Storm Ltd.
Licensed under the MIT License.
http://phaser.io/docs/2.6.2/Phaser.QuadTree.html