Spec-Zone.ru › Phaser

Класс: 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)

Общедоступные свойства

bounds : Объект

Объект, содержащий границы quadtree.

Исходный код: math/QuadTree.js (Строка 45)

level : число

Текущий уровень.

Исходный код: math/QuadTree.js (Строка 40)

maxLevels : число

Максимальное количество уровней разбиения.

Значение по умолчанию
  • 4
Исходный код: math/QuadTree.js (Строка 35)

maxObjects : число

Максимальное количество объектов на узел.

Значение по умолчанию
  • 10
Исходный код: math/QuadTree.js (Строка 29)

nodes : массив

Массив связанных дочерних узлов.

Исходный код: math/QuadTree.js (Строка 55)

objects : массив

Массив дочерних элементов quadtree.

Исходный код: math/QuadTree.js (Строка 50)

Общедоступные методы

clear()

Очистить кваддерево.

Исходный код: math/QuadTree.js (Строка 295)

getIndex(rect) → {число}

Определить, к какому узлу принадлежит объект.

Параметры
Имя Тип Описание
rect Phaser.Rectangle | объект

Границы, в которых необходимо проверить.

Возвращает
число -

индекс - Индекс дочернего узла (0-3) или -1, если прямоугольник не может полностью поместиться в дочернем узле и является частью родительского узла.

Исходный код: math/QuadTree.js (Строка 203)

insert(body)

Вставить объект в узел. Если узел превышает емкость, он разделится, и все объекты будут добавлены в соответствующие дочерние узлы.

Параметры
Имя Тип Описание
body Phaser.Physics.Arcade.Body | объект

Объект Body для вставки в кваддерево. Может быть любым объектом, если он предоставляет свойства x, y, right и bottom.

Исходный код: math/QuadTree.js (Строка 151)

populate(group)

Заполняет это кваддерево дочерними элементами заданной группы. Чтобы элемент был добавлен, он должен существовать и иметь свойство body.

Параметры
Имя Тип Описание
group Phaser.Group

Группа для добавления в кваддерево.

Исходный код: math/QuadTree.js (Строка 103)

populateHandler(sprite)

Обработчик метода populate.

Параметры
Имя Тип Описание
sprite Phaser.Sprite | объект

Проверяемый спрайт.

Исходный код: math/QuadTree.js (Строка 115)

reset(x, y, width, height, maxObjects, maxLevels, level)

Сбросить кваддерево.

Параметры
Имя Тип Аргумент По умолчанию Описание
x число

Координаты верхнего левого угла кваддерева.

y число

Координаты верхнего левого угла кваддерева.

width число

Ширина кваддерева в пикселях.

height число

Высота кваддерева в пикселях.

maxObjects число <необязательный>
10

Максимальное количество объектов на узел.

maxLevels число <необязательный>
4

Максимальное количество уровней для итерации.

level число <необязательный>
0

Какой это уровень?

Исходный код: math/QuadTree.js (Строка 69)

retrieve(source) → {массив}

Возвращает все объекты, которые могут сталкиваться с заданным спрайтом или прямоугольником.

Параметры
Имя Тип Описание
source Phaser.Sprite | Phaser.Rectangle

Объект-источник для проверки кваддерева. Спрайт или прямоугольник.

Возвращает
массив -
  • Массив со всеми обнаруженными объектами.
Исходный код: math/QuadTree.js (Строка 247)

split()

Разделить узел на 4 подузла

Исходный код: math/QuadTree.js (Строка 130)

© 2016 Richard Davey, Photon Storm Ltd.
Licensed under the MIT License.
http://phaser.io/docs/2.6.2/Phaser.QuadTree.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API