Класс: Phaser.Physics.P2
Конструктор
new P2(game, config)
Это основной доступ к физическому миру P2.
Отсюда вы можете создавать материалы, реагировать на события и добавлять тела в физическую симуляцию.
Параметры
| Имя | Тип | Аргумент | Описание |
|---|---|---|---|
game | Phaser.Game | Ссылка на текущую инстанцию игры. | |
config | object | <optional> | Объект конфигурации физики, переданный из конструктора игры. |
- Исходный код: physics/p2/World.js (Строка 20)
Классы
- Тело
- Отладка тела
- Группа столкновений
- Материал контакта
- Ограничение расстояния
- Список фикстур
- Ограничение шестерни
- Обратный прокси-пункт
- Ограничение блокировки
- Материал
- Прокси-пункт
- Ограничение призмы
- Ограничение шарнира
- Вращающаяся пружина
- Пружина
Свойства
- Исходный код: physics/p2/World.js (Строка 1919)
- Исходный код: physics/p2/World.js (Строка 1939)
- Исходный код: physics/p2/World.js (Строка 1899)
- Исходный код: physics/p2/World.js (Строка 232)
- Исходный код: physics/p2/World.js (Строка 222)
- Исходный код: physics/p2/World.js (Строка 170)
- Исходный код: physics/p2/World.js (Строка 212)
- Внутреннее:
- Этот член является внутренним (защищенным) и может быть изменён или удалён в будущем.
- Исходный код: physics/p2/World.js (Строка 48)
- Исходный код: physics/p2/World.js (Строка 1879)
- Исходный код: physics/p2/World.js (Строка 1994)
- Исходный код: physics/p2/World.js (Строка 227)
- Исходный код: physics/p2/World.js (Строка 60)
- Исходный код: physics/p2/World.js (Строка 1839)
- Исходный код: physics/p2/World.js (Строка 25)
- Исходный код: physics/p2/World.js (Строка 83)
- array.<Phaser.Physics.P2.Material>
- Внутреннее:
- Этот член является внутренним (защищенным) и может быть изменён или удалён в будущем.
- Исходный код: physics/p2/World.js (Строка 78)
- Исходный код: physics/p2/World.js (Строка 217)
- Исходный код: physics/p2/World.js (Строка 182)
- Исходный код: physics/p2/World.js (Строка 97)
- Исходный код: physics/p2/World.js (Строка 106)
applyDamping : boolean
Включить автоматическое применение затухания тела на каждом шаге.
applyGravity : boolean
Включить автоматическое применение силы тяжести на каждом шаге.
applySpringForces : boolean
Включить автоматическое применение сил пружины на каждом шаге.
boundsCollidesWith :array
Массив тел, с которыми сталкиваются границы мира.
boundsCollisionGroup : Phaser.Physics.P2.CollisionGroup
Группа столкновений по умолчанию.
callbackContext : Object
Контекст, в котором вызываются обратные вызовы.
collisionGroups :array
Массив, содержащий группы столкновений, которые были определены в мире.
<internal> config : Object
Объект конфигурации p2 World.
contactMaterial :p2.ContactMaterial
Стандартный материал столкновения, используемый миром.
emitImpactEvent : boolean
Установите в значение true, если вы хотите, чтобы мир генерировал событие "impact". Отключение может повысить производительность.
everythingCollisionGroup : Phaser.Physics.P2.CollisionGroup
Группа столкновений по умолчанию.
frameRate : number
Частота кадров, с которой будет выполняться шаг мира. По умолчанию 1/60, но вы можете изменить это значение. Также см. свойство useElapsedTime.
friction : number
Сила трения между сталкивающимися телами. Это значение используется, если для пары материалов не найден соответствующий ContactMaterial.
game : Phaser.Game
Локальная ссылка на игру.
gravity : Phaser.Physics.P2.InversePointProxy
Сила тяжести, применяемая к всем телам на каждом шаге.
<internal> materials :array.<Phaser.Physics.P2.Material>
Локальный массив всех созданных материалов.
Тип
nothingCollisionGroup : Phaser.Physics.P2.CollisionGroup
Группа столкновений по умолчанию.
onBeginContact : Phaser.Signal
Этот сигнал отправляется при создании первого контакта между двумя телами. Это происходит до выполнения шага.
Он отправляет 5 аргументов: bodyA, bodyB, shapeA, shapeB и contactEquations.
Возможны ситуации, когда значения bodyA или bodyB равны null. Вы должны проверять это
в своём коде, чтобы избежать обработки потенциально нулевых физических тел.
onBodyAdded : Phaser.Signal
Этот сигнал отправляется при добавлении нового тела в мир.
Он отправляет 1 аргумент: body , который является Phaser.Physics.P2.Body , добавленным в мир.
onBodyRemoved : Phaser.Signal
Этот сигнал отправляется при удалении тела из мира.
Он отправляет 1 аргумент: body , который является Phaser.Physics.P2.Body, удалённым из мира.
onConstraintAdded : Phaser.Signal
Этот сигнал отправляется при добавлении ограничения в мир.
Он отправляет 1 аргумент: constraint , который является Phaser.Physics.P2.Constraint, добавленным в мир.
- Исходный код: physics/p2/World.js (Строка 133)
- Исходный код: physics/p2/World.js (Строка 142)
- Исходный код: physics/p2/World.js (Строка 151)
- Исходный код: physics/p2/World.js (Строка 160)
- Исходный код: physics/p2/World.js (Строка 194)
- Исходный код: physics/p2/World.js (Строка 115)
- Исходный код: physics/p2/World.js (Строка 124)
- Исходный код: physics/p2/World.js (Строка 72)
- Исходный код: physics/p2/World.js (Строка 165)
- Исходный код: physics/p2/World.js (Строка 1859)
- Исходный код: physics/p2/World.js (Строка 2014)
- Исходный код: physics/p2/World.js (Строка 1959)
- Исходный код: physics/p2/World.js (Строка 1979)
- Исходный код: physics/p2/World.js (Строка 2036)
- Исходный код: physics/p2/World.js (Строка 66)
- Исходный код: physics/p2/World.js (Строка 88)
- Внутреннее:
- Этот член является *внутренним (защищенным)* и может быть изменен или удален в будущем.
- Исходный код: physics/p2/World.js (Строка 54)
onConstraintRemoved : Phaser.Signal
Данное событие срабатывает при удалении связи (Constraint) из мира.
Передается 1 аргумент: constraint, который представляет собой Phaser.Physics.P2.Constraint, удаленную из мира.
onContactMaterialAdded : Phaser.Signal
Это событие срабатывает при добавлении материала взаимодействия (Contact Material) в мир.
Передается 1 аргумент: material, который представляет собой Phaser.Physics.P2.ContactMaterial добавленный в мир.
onContactMaterialRemoved : Phaser.Signal
Это событие срабатывает при удалении материала взаимодействия (Contact Material) из мира.
Передается 1 аргумент: material, который представляет собой Phaser.Physics.P2.ContactMaterial удаленный из мира.
onEndContact : Phaser.Signal
Это событие срабатывает при окончании контакта между двумя телами. Это происходит *до* выполнения шага симуляции.
Передается 4 аргумента: bodyA, bodyB, shapeA и shapeB.
Возможны ситуации, когда значения bodyA или bodyB могут быть null. Проверьте это в своем коде, чтобы избежать обработки потенциально пустых физических тел.
onSpringAdded : Phaser.Signal
Это событие срабатывает при добавлении пружины (Spring) в мир.
Передается 1 аргумент: spring, который может быть Phaser.Physics.P2.Spring, p2.LinearSpring или p2.RotationalSpring, добавленной в мир.
onSpringRemoved : Phaser.Signal
Это событие срабатывает при удалении пружины (Spring) из мира.
Передается 1 аргумент: spring, который может быть Phaser.Physics.P2.Spring, p2.LinearSpring или p2.RotationalSpring, удаленной из мира.
paused : boolean
Состояние приостановки физического мира P2.
postBroadphaseCallback : Function
Обратный вызов postBroadphase.
restitution : number
Коэффициент восстановления по умолчанию при столкновении тел. Это значение используется, если соответствующий ContactMaterial не найден для пары материалов.
sleepMode : number
Режим отключения тел во время симуляции. Возможные режимы: World.NO_SLEEPING, World.BODY_SLEEPING и World.ISLAND_SLEEPING.
Если отключение тел включено, вам может потребоваться их активировать, если они перешли в состояние покоя в неподходящий момент. Если вы хотите включить отключение тел в мире, но отключить его для определенного тела, см. Body.allowSleep.
solveConstraints : boolean
Включить/выключить решение ограничений на каждом шаге.
[readonly] time : boolean
Время мира.
[readonly] total : number
Общее количество тел в мире.
useElapsedTime : boolean
Если true, значение frameRate игнорируется, и вместо этого p2 будет выполнять шаг с использованием значения Game.Time.physicsElapsed, которое представляет собой значение дельта-времени.
walls : Object
Объект, содержащий 4 стенных тела, ограничивающие физический мир.
<internal> world :p2.World
Физический мир p2, в котором выполняется симуляция.
Открытые методы
- Source code: physics/p2/World.js (Line 887)
- Source code: physics/p2/World.js (Line 1119)
- Source code: physics/p2/World.js (Line 1153)
- Source code: physics/p2/World.js (Line 931)
- Source code: physics/p2/World.js (Line 502)
- Удаляет все уравнения решателя
- Удаляет все ограничения
- Удаляет все тела
- Удаляет все пружины
- Удаляет все материалы соприкосновения
- Source code: physics/p2/World.js (Line 800)
- Source code: physics/p2/World.js (Line 1666)
- Source code: physics/p2/World.js (Line 1625)
addBody(body) → {boolean}
Добавляет тело в мир.
Parameters
| Name | Type | Описание |
|---|---|---|
body | Phaser.Physics.P2.Body | Тело для добавления в мир. |
Returns
True, если тело было успешно добавлено, иначе false.
addConstraint(constraint) → {Phaser.Physics.P2.Constraint}
Добавляет ограничение в мир.
Parameters
| Name | Type | Описание |
|---|---|---|
constraint | Phaser.Physics.P2.Constraint | Ограничение для добавления в мир. |
Returns
Добавленное ограничение.
addContactMaterial(material) → {Phaser.Physics.P2.ContactMaterial}
Добавляет материал соприкосновения в мир.
Parameters
| Name | Type | Описание |
|---|---|---|
material | Phaser.Physics.P2.ContactMaterial | Материал соприкосновения, который нужно добавить в мир. |
Returns
Материал соприкосновения, который был добавлен.
addSpring(spring) → {Phaser.Physics.P2.Spring}
Добавляет пружину в мир.
Parameters
| Name | Type | Описание |
|---|---|---|
spring | Phaser.Physics.P2.Spring | p2.LinearSpring | p2.RotationalSpring | Пружина для добавления в мир. |
Returns
Добавленная пружина.
beginContactHandler(event)
Обрабатывает событие начала контакта p2.
Parameters
| Name | Type | Описание |
|---|---|---|
event | object | Данные события. |
clear()
Очищает все тела из симуляции, сбрасывает обратные вызовы и сбрасывает маску столкновений.
Мир P2 также очищается:
Это вызывается автоматически при переключении состояния.
clearTilemapLayerBodies(map, layer)
Очищает все физические тела из заданного TilemapLayer, созданные с помощью World.convertTilemap.
Parameters
| Name | Type | Argument | Описание |
|---|---|---|---|
map | Phaser.Tilemap | Tilemap для получения данных карты. | |
layer | number | string | Phaser.TilemapLayer | <optional> | Слой для обработки. Если не указан, будет использоваться map.currentLayer. |
convertCollisionObjects(map, layer, addToWorld) → {array}
Преобразует все объекты полилиний в группе объектов Tiled в физические тела, которые добавляются в мир.
Обратите внимание, что полилинии должны быть созданы таким образом, чтобы выдерживать разложение многоугольников.
Parameters
| Name | Type | Argument | Default | Описание |
|---|---|---|---|---|
map | Phaser.Tilemap | Tilemap для получения данных карты. | ||
layer | number | string | Phaser.TilemapLayer | <optional> | Слой для обработки. Если не указан, будет использоваться map.currentLayer. | |
addToWorld | boolean | <optional> | true | Если true, каждое тело будет автоматически добавлено в мир. |
Returns
Массив объектов Phaser.Physics.Body, которые были созданы.
convertTilemap(map, layer, addToWorld, optimize) → {array}
Проходит по всем тайлам в заданном Tilemap и TilemapLayer и преобразует те, которые настроены на столкновение, в физические тела.
Вызывайте эту функцию после того, как вы указали все тайлы, с которыми должны происходить столкновения, с помощью методов типа Tilemap.setCollisionBetween и т. д.
Каждый раз при вызове этого метода любые ранее созданные тела будут уничтожены и удалены из мира.
Поэтому понимайте, что это очень дорогостоящая операция и не должна выполняться в основном цикле обновления игры.
Parameters
- Исходный код: physics/p2/World.js (Строка 1688)
- Исходный код: physics/p2/World.js (Строка 1542)
- Исходный код: physics/p2/World.js (Строка 1411)
- Исходный код: physics/p2/World.js (Строка 1246)
| Имя | Тип | Аргумент | Значение по умолчанию | Описание |
|---|---|---|---|---|
map | Phaser.Tilemap | Карта тайлов, из которой нужно получить данные. | ||
layer | число | строка | Phaser.TilemapLayer | <дополнительный> | Слой, над которым нужно произвести операцию. Если не указан, по умолчанию используется map.currentLayer. | |
addToWorld | логическое | <дополнительный> | true | Если true, каждый объект тела автоматически добавится в мир. Иначе вы должны добавить их самостоятельно. |
optimize | логическое | <дополнительный> | true | Если true, смежные столкновения тайлов будут объединены в одно тело для экономии ресурсов. Однако это значит, что вы не сможете выполнять отдельные ответы на столкновения тайл-тела. |
Возвращаемое значение
Массив объектов Phaser.Physics.P2.Body, которые были созданы.
createBody(x, y, mass, addToWorld, options, points) → {Phaser.Physics.P2.Body}
Создаёт новое тело и добавляет его в мир.
Параметры
| Имя | Тип | Аргумент | Значение по умолчанию | Описание | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
x | число | Координата x тела. | ||||||||||||||||||||||
y | число | Координата y тела. | ||||||||||||||||||||||
mass | число | Масса тела. Масса 0 означает статическое тело. | ||||||||||||||||||||||
addToWorld | логическое | <дополнительный> | false | Автоматически добавить это тело в мир? (обычно false, так как на этапе создания у него нет фигур). | ||||||||||||||||||||
options | объект |
Объект с параметрами построения: Свойства
| ||||||||||||||||||||||
points | Массив.<число> | число | Массив 2D векторов, образующих выпуклый или вогнутый многоугольник. |
Возвращаемое значение
Тело
createCollisionGroup(object)
Создаёт новую группу столкновений и, необязательно, применяет её к заданному объекту.
Группы столкновений обрабатываются с помощью битовых масок, поэтому у вас есть ограничение, которое вы можете создать, прежде чем вам нужно будет повторно использовать более старые группы.
Параметры
| Имя | Тип | Аргумент | Описание |
|---|---|---|---|
object | Phaser.Group | Phaser.Sprite | <дополнительный> | Необязательный объект Sprite или Group, к которому применяется группа столкновений. Если задана Group, она будет применена ко всем дочерним элементам верхнего уровня. |
createContactMaterial(materialA, materialB, options) → {Phaser.Physics.P2.ContactMaterial}
Создаёт Contact Material из двух заданных материалов. Затем вы можете напрямую редактировать свойства Contact Material.
Параметры
| Имя | Тип | Аргумент | Описание |
|---|---|---|---|
materialA | Phaser.Physics.P2.Material | <дополнительный> | Первый материал для создания ContactMaterial. Если undefined, сначала создастся новый объект Material. |
materialB | Phaser.Physics.P2.Material | <дополнительный> | Второй материал для создания ContactMaterial. Если undefined, сначала создастся новый объект Material. |
options | объект | <дополнительный> | Объект параметров материала. |
Возвращаемое значение
Созданный Contact Material.
createDistanceConstraint(bodyA, bodyB, distance, localAnchorA, localAnchorB, maxForce) → {Phaser.Physics.P2.DistanceConstraint}
Создаёт ограничение, которое пытается поддерживать постоянное расстояние между двумя телами.
Параметры
- Исходный код: physics/p2/World.js (Строка 979)
- Исходный код: physics/p2/World.js (Строка 1007)
- Исходный код: physics/p2/World.js (Строка 1062)
- Исходный код: physics/p2/World.js (Строка 1219)
| Имя | Тип | Аргумент | Описание |
|---|---|---|---|
bodyA | Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body | Первый соединённый объект. | |
bodyB | Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body | Второй соединённый объект. | |
distance | number | Расстояние, которое должно быть между объектами. | |
localAnchorA | Array | <optional> | Точка привязки для объекта A, определённая локально в системе координат объекта A. По умолчанию [0,0]. |
localAnchorB | Array | <optional> | Точка привязки для объекта B, определённая локально в системе координат объекта B. По умолчанию [0,0]. |
maxForce | number | <optional> | Максимальная сила, которая должна быть применена для ограничения объектов. |
Возвращаемое значение
Ограничение
createGearConstraint(bodyA, bodyB, angle, ratio) → {Phaser.Physics.P2.GearConstraint}
Создаёт ограничение, которое пытается поддерживать постоянное расстояние между двумя объектами.
Параметры
| Имя | Тип | Аргумент | Значение по умолчанию | Описание |
|---|---|---|---|---|
bodyA | Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body | Первый соединённый объект. | ||
bodyB | Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body | Второй соединённый объект. | ||
angle | number | <optional> | 0 | Относительный угол |
ratio | number | <optional> | 1 | Коэффициент передачи. |
Возвращаемое значение
Ограничение
createLockConstraint(bodyA, bodyB, offset, angle, maxForce) → {Phaser.Physics.P2.LockConstraint}
Фиксирует относительное положение между двумя объектами.
Параметры
| Имя | Тип | Аргумент | Значение по умолчанию | Описание |
|---|---|---|---|---|
bodyA | Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body | Первый соединённый объект. | ||
bodyB | Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body | Второй соединённый объект. | ||
offset | Array | <optional> | Смещение объекта B в системе координат объекта A. Значение — массив из 2 элементов, соответствующих x и y, например: [32, 32]. | |
angle | number | <optional> | 0 | Угол объекта B в системе координат объекта A. |
maxForce | number | <optional> | Максимальная сила, которая должна быть применена для ограничения объектов. |
Возвращаемое значение
Ограничение
createMaterial(name, body) → {Phaser.Physics.P2.Material}
Создаёт Материал. Материалы применяются к формам, принадлежащим объекту, и могут быть установлены с помощью Body.setMaterial().
Материалы — способ управления тем, что происходит при столкновении фигур. Объедините уникальные материалы вместе, чтобы создать Материалы столкновения.
Материалы столкновения имеют свойства, такие как трение и восстановление, которые позволяют для точного контроля столкновения между разными Материалами.
Параметры
| Имя | Тип | Аргумент | Описание |
|---|---|---|---|
name | string | <optional> | Необязательное имя Материала. Каждый Материал имеет уникальный идентификатор, но строковые имена удобны для отладки. |
body | Phaser.Physics.P2.Body | <optional> | Необязательный Объект. Если он задан, он назначит вновь созданный Материал формам Объекта. |
Возвращаемое значение
Созданный Материал. Он также хранится в Phaser.Physics.P2.materials.
createParticle(x, y, mass, addToWorld, options, points)
Создаёт новую Частицу и добавляет её в Мир.
Параметры
- Исходный код: physics/p2/World.js (Строка 1584)
- Исходный код: physics/p2/World.js (Строка 1089)
- Исходный код: physics/p2/World.js (Строка 1033)
| Имя | Тип | Аргумент | Значение по умолчанию | Описание | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
x | число | Координата x тела. | ||||||||||||||||||||||
y | число | Координата y тела. | ||||||||||||||||||||||
mass | число | Масса тела. Масса 0 означает создание «статичного» тела. | ||||||||||||||||||||||
addToWorld | логическое | <необязательно> | false | Автоматически добавить это тело в мир? (обычно false, так как при создании не будет форм). | ||||||||||||||||||||
options | объект |
Объект, содержащий параметры построения: Свойства
| ||||||||||||||||||||||
points | Массив.<число> | число | Массив 2D-векторов, образующих выпуклый или вогнутый многоугольник. |
createPrismaticConstraint(bodyA, bodyB, lockRotation, anchorA, anchorB, axis, maxForce) → {Phaser.Physics.P2.PrismaticConstraint}
Ограничение, которое позволяет телам перемещаться только вдоль линии относительно друг друга.
См. http://www.iforce2d.net/b2dtut/joints-prismatic
Параметры
| Имя | Тип | Аргумент | Значение по умолчанию | Описание |
|---|---|---|---|---|
bodyA | Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body | Первое связанное тело. | ||
bodyB | Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body | Второе связанное тело. | ||
lockRotation | логическое | <необязательно> | true | Если установлено в false, тело B будет свободно вращаться вокруг своей точки привязки. |
anchorA | Массив | <необязательно> | Точка привязки тела A, определенная в его собственной локальной системе координат. Значение — массив из 2 элементов, соответствующих x и y, например: [32, 32]. | |
anchorB | Массив | <необязательно> | Точка привязки тела A, определенная в его собственной локальной системе координат. Значение — массив из 2 элементов, соответствующих x и y, например: [32, 32]. | |
axis | Массив | <необязательно> | Ось, определенная в системе координат тела A, вдоль которой точка привязки тела B может перемещаться. Значение — массив из 2 элементов, соответствующих x и y, например: [32, 32]. | |
maxForce | число | <необязательно> | Максимальная сила, которая должна быть применена для ограничения тел. |
Возвращаемое значение
Ограничение
createRevoluteConstraint(bodyA, pivotA, bodyB, pivotB, maxForce, worldPivot) → {Phaser.Physics.P2.RevoluteConstraint}
Соединяет два тела в заданных точках смещения, позволяя им вращаться относительно друг друга вокруг этой точки.
Точки привязки заданы в мировых (пиксельных) координатах.
Параметры
| Имя | Тип | Аргумент | Значение по умолчанию | Описание |
|---|---|---|---|---|
bodyA | Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body | Первое связанное тело. | ||
pivotA | Массив | Точка относительно центра масс тела A, к которой тело A привязано. Значение — массив из 2 элементов, соответствующих x и y, например: [32, 32]. | ||
bodyB | Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body | Второе связанное тело. | ||
pivotB | Массив | Точка относительно центра масс тела B, к которой тело B привязано. Значение — массив из 2 элементов, соответствующих x и y, например: [32, 32]. | ||
maxForce | число | <необязательно> | 0 | Максимальная сила, которая должна быть применена для ограничения тел. |
worldPivot | Float32Array | <необязательно> | null | Точка привязки, заданная в мировых координатах. Если указано, localPivotA и localPivotB автоматически вычисляются из этого значения. |
Возвращаемое значение
Ограничение
createRotationalSpring(bodyA, bodyB, restAngle, stiffness, damping) → {Phaser.Physics.P2.RotationalSpring}
- Исходный код: physics/p2/World.js (Строка 1515)
- Исходный код: physics/p2/World.js (Строка 1484)
- Исходный код: physics/p2/World.js (Строка 874)
- Исходный код: physics/p2/World.js (Строка 313)
- Исходный код: physics/p2/World.js (Строка 372)
Создаёт вращательную пружину, соединяющую два тела. Пружина может иметь длину покоя, жёсткость и затухание.
Параметры
| Имя | Тип | Аргумент | По умолчанию | Описание |
|---|---|---|---|---|
bodyA | Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body | Первое соединённое тело. | ||
bodyB | Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body | Второе соединённое тело. | ||
restAngle | number | <необязательно> | Относительный угол тел, при котором пружина находится в состоянии покоя. Если не указан, устанавливается текущий относительный угол между телами. | |
stiffness | number | <необязательно> | 100 | Жёсткость пружины. Число ≥ 0. |
damping | number | <необязательно> | 1 | Затухание пружины. Число ≥ 0. |
Возвращаемое значение
Пружина
createSpring(bodyA, bodyB, restLength, stiffness, damping, worldA, worldB, localA, localB) → {Phaser.Physics.P2.Spring}
Создаёт линейную пружину, соединяющую два тела. Пружина может иметь длину покоя, жёсткость и затухание.
Параметры
| Имя | Тип | Аргумент | По умолчанию | Описание |
|---|---|---|---|---|
bodyA | Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body | Первое соединённое тело. | ||
bodyB | Phaser.Sprite | Phaser.Physics.P2.Body | p2.Body | Второе соединённое тело. | ||
restLength | number | <необязательно> | 1 | Длина покоя пружины. Число > 0. |
stiffness | number | <необязательно> | 100 | Жёсткость пружины. Число ≥ 0. |
damping | number | <необязательно> | 1 | Затухание пружины. Число ≥ 0. |
worldA | Array | <необязательно> | Место крепления пружины к телу A в мировых координатах. Это значение представляет собой массив из 2 элементов, x и y, например: [32, 32]. | |
worldB | Array | <необязательно> | Место крепления пружины к телу B в мировых координатах. Это значение представляет собой массив из 2 элементов, x и y, например: [32, 32]. | |
localA | Array | <необязательно> | Место крепления пружины к телу A в локальных координатах тела. Это значение представляет собой массив из 2 элементов, x и y, например: [32, 32]. | |
localB | Array | <необязательно> | Место крепления пружины к телу B в локальных координатах тела. Это значение представляет собой массив из 2 элементов, x и y, например: [32, 32]. |
Возвращаемое значение
Пружина
destroy()
Очищает все тела из симуляции и разрывает связь World с Game. Должна вызываться только при завершении игры. Вызывать clear при смене состояния.
enable(object, debug, children)
Это создаст физическое тело P2 для заданного объекта игры или массива объектов игры.
Объект игры может иметь только 1 активное физическое тело в любой момент времени, и его нельзя изменить, пока объект не будет уничтожен.
Примечание: Когда объект игры активируется для физики P2, его якорь x/y устанавливается в 0,5, чтобы он стал центрированным.
Параметры
| Имя | Тип | Аргумент | По умолчанию | Описание |
|---|---|---|---|---|
object | object | array | Phaser.Group | Объект игры, на котором создать физическое тело. Также может быть массивом или группой объектов, тело будет создано для каждого дочернего объекта, у которого есть свойство | ||
debug | boolean | <необязательно> | false | Создать отладочный объект для данного тела? |
children | boolean | <необязательно> | true | Создать тело для всех дочерних объектов данного объекта? Если true, это будет рекурсивно выполняться вниз по списку отображения до тех пор, пока это возможно. |
enableBody(object, debug)
Создаёт физическое тело P2 для заданного объекта игры.
Объект игры может иметь только 1 активное физическое тело в любой момент времени, и его нельзя изменить, пока тело не будет обнулено.
Параметры
| Имя | Тип | Описание |
|---|---|---|
object | object | Объект игры, на котором создать физическое тело. Тело будет создано только если у этого объекта свойство |
debug | boolean | Создать отладочный объект для данного тела? |
endContactHandler(event)
Обрабатывает событие окончания контакта p2.
Параметры
- Исходный код: physics/p2/World.js (Строка 527)
- Исходный код: physics/p2/World.js (Строка 1266)
- Исходный код: physics/p2/World.js (Строка 1286)
- Исходный код: physics/p2/World.js (Строка 1335)
- Исходный код: physics/p2/World.js (Строка 1187)
- Исходный код: physics/p2/World.js (Строка 1315)
- Исходный код: physics/p2/World.js (Строка 1357)
- Исходный код: physics/p2/World.js (Строка 1777)
- Исходный код: physics/p2/World.js (Строка 1807)
| Имя | Тип | Описание |
|---|---|---|
event | объект | Данные события. |
getBodies() → {массив.<Phaser.Physics.P2.Body>}
Заполняет и возвращает массив с ссылками на все текущие объекты тела в мире.
Возвращает
Массив, содержащий все текущие объекты тела в мире.
getBody(объект) → {p2.Body}
Проверяет заданный объект на наличие p2.Body и, если он есть, возвращает его.
Параметры
| Имя | Тип | Описание |
|---|---|---|
object | объект | Объект, на котором нужно проверить наличие p2.Body. |
Возвращает
Объект p2.Body или null, если не найден.
getConstraints() → {массив.<Phaser.Physics.P2.Constraint>}
Заполняет и возвращает массив всех текущих ограничений в мире.
Вы получите массив p2 ограничений. Он может содержать различные типы, например, PrismaticConstraints, RevoluteConstraints или любой другой допустимый тип p2 ограничения.
Возвращает
Массив, содержащий все текущие ограничения в мире.
getContactMaterial(materialA, materialB) → {Phaser.Physics.P2.ContactMaterial | boolean}
Получает материал контакта на основе двух заданных материалов.
Параметры
| Имя | Тип | Описание |
|---|---|---|
materialA | Phaser.Physics.P2.Material | Первый материал для поиска. |
materialB | Phaser.Physics.P2.Material | Второй материал для поиска. |
Возвращает
Материал контакта или false, если не было найдено соответствующего материала.
getSprings() → {массив.<Phaser.Physics.P2.Spring>}
Заполняет и возвращает массив всех текущих пружин в мире.
Возвращает
Массив, содержащий все текущие пружины в мире.
hitTest(worldPoint, bodies, precision, filterStatic) → {Массив}
Проверяет, перекрывает ли точка в мире тела. Вы получите массив фактических тел P2. Вы можете узнать, к какому спрайту принадлежит тело (если есть) путем проверки свойства Body.parent.sprite. Body.parent — свойство Phaser.Physics.P2.Body.
Параметры
| Имя | Тип | Аргумент | Значение по умолчанию | Описание |
|---|---|---|---|---|
worldPoint | Phaser.Point | Точка, используемая для тестов пересечения. Значения точек должны быть в мировых (пиксельных) координатах. | ||
bodies | Массив.<(Phaser.Physics.P2.Body | Phaser.Sprite | p2.Body)> | <необязательно> | Список объектов для проверки пересечения. Если не указано, будет проверено Phaser.Physics.P2.world.bodies (т.е. все тела мира). | |
precision | число | <необязательно> | 5 | Используется для сопоставления с частицами и линиями. Добавляет некоторый отступ к этим бесконечно малым объектам. |
filterStatic | boolean | <необязательно> | false | Если true, все статические объекты будут удалены из массива результатов. |
Возвращает
Массив тел, которые перекрывают точку.
mpx(v) → {число}
Преобразует физическое значение p2 (метры) в масштаб пикселей.
По умолчанию Phaser использует масштаб 20 пикселей на метр.
Если вам нужно это изменить, вы можете переопределить эти функции через объект конфигурации физики.
Параметры
| Имя | Тип | Описание |
|---|---|---|
v | число | Значение для преобразования. |
Возвращает
Масштабированное значение.
mpxi(v) → {число}
Преобразует физическое значение p2 (метры) в масштаб пикселей и инвертирует его.
По умолчанию Phaser использует масштаб 20 пикселей на метр.
Если вам нужно это изменить, вы можете переопределить эти функции через объект конфигурации физики.
Параметры
| Имя | Тип | Описание |
|---|---|---|
v | число | Значение для преобразования. |
Возвращает
Масштабированное значение.
pause()
Приостанавливает мир P2 независимо от состояния паузы игры.
- Source code: physics/p2/World.js (Line 733)
- Source code: physics/p2/World.js (Line 295)
- Source code: physics/p2/World.js (Line 1792)
- Source code: physics/p2/World.js (Line 1822)
- Source code: physics/p2/World.js (Line 911)
- Source code: physics/p2/World.js (Line 283)
- Source code: physics/p2/World.js (Line 1136)
- Source code: physics/p2/World.js (Line 1170)
- Source code: physics/p2/World.js (Line 955)
- Source code: physics/p2/World.js (Line 779)
- Source code: physics/p2/World.js (Line 744)
preUpdate()
Вызывается в начале цикла обновления ядра. Удаляет помеченные тела из мира.
pxm(v) → {number}
Преобразовать значение пикселей в масштаб физики p2 (метры).
По умолчанию Phaser использует масштаб 20 пикселей на метр.
Если вам нужно это изменить, вы можете переопределить эти функции через объект конфигурации физики.
Параметры
| Имя | Тип | Описание |
|---|---|---|
v | number | Значение для преобразования. |
Возвращаемое значение
Масштабированное значение.
pxmi(v) → {number}
Преобразовать значение пикселей в масштаб физики p2 (метры) и инвертировать его.
По умолчанию Phaser использует масштаб 20 пикселей на метр.
Если вам нужно это изменить, вы можете переопределить эти функции через объект конфигурации физики.
Параметры
| Имя | Тип | Описание |
|---|---|---|
v | number | Значение для преобразования. |
Возвращаемое значение
Масштабированное значение.
removeBody(body) → {Phaser.Physics.P2.Body}
Удаляет тело из мира. Это произойдет без ошибок, если тело не было частью мира изначально.
Параметры
| Имя | Тип | Описание |
|---|---|---|
body | Phaser.Physics.P2.Body | Тело для удаления из мира. |
Возвращаемое значение
Тело, которое было удалено.
removeBodyNextStep(body)
Это добавит тело физики P2 в список удаления для следующего шага.
Параметры
| Имя | Тип | Описание |
|---|---|---|
body | Phaser.Physics.P2.Body | Тело, которое нужно удалить в начале следующего шага. |
removeConstraint(constraint) → {Phaser.Physics.P2.Constraint}
Удаляет ограничение из мира.
Параметры
| Имя | Тип | Описание |
|---|---|---|
constraint | Phaser.Physics.P2.Constraint | Ограничение для удаления из мира. |
Возвращаемое значение
Ограничение, которое было удалено.
removeContactMaterial(material) → {Phaser.Physics.P2.ContactMaterial}
Удаляет материал контакта из мира.
Параметры
| Имя | Тип | Описание |
|---|---|---|
material | Phaser.Physics.P2.ContactMaterial | Материал контакта для удаления из мира. |
Возвращаемое значение
Материал контакта, который был удален.
removeSpring(spring) → {Phaser.Physics.P2.Spring}
Удаляет пружину из мира.
Параметры
| Имя | Тип | Описание |
|---|---|---|
spring | Phaser.Physics.P2.Spring | Пружину для удаления из мира. |
Возвращаемое значение
Пружина, которая была удалена.
reset()
Вызывается Phaser.Physics при смене состояния.
Запускает слушателей контакта begin и end снова.
resume()
Возобновляет приостановленный мир P2.
setBounds(x, y, width, height, left, right, top, bottom, setCollisionGroup)
Устанавливает границы физического мира, чтобы соответствовать заданным пиксельным размерам мира.
Вы можете по желанию указать, какие «стены» создать: слева, справа, сверху или снизу.
Если ни одна из стен не указана, по умолчанию используются настройки стен, которые были ранее.
То есть, если вы ранее сказали, что у него нет левой или правой стен, и вы затем измените размер мира,
новые созданные границы также не будут иметь левых и правых стен.
Явно укажите их в параметрах, чтобы переопределить это.
Параметры
- Исходный код: physics/p2/World.js (Строка 646)
- Исходный код: physics/p2/World.js (Строка 393)
- Исходный код: physics/p2/World.js (Строка 1201)
- Исходный код: physics/p2/World.js (Строка 413)
- Исходный код: physics/p2/World.js (Строка 1399)
- Исходный код: physics/p2/World.js (Строка 755)
- Исходный код: physics/p2/World.js (Строка 608)
| Имя | Тип | Аргумент | По умолчанию | Описание |
|---|---|---|---|---|
x | число | Координата x левого верхнего угла области. | ||
y | число | Координата y левого верхнего угла области. | ||
width | число | Ширина области. | ||
height | число | Высота области. | ||
left | логическое | <необязательно> | true | Если true, создаст стену левой границы. |
right | логическое | <необязательно> | true | Если true, создаст стену правой границы. |
top | логическое | <необязательно> | true | Если true, создаст стену верхней границы. |
bottom | логическое | <необязательно> | true | Если true, создаст стену нижней границы. |
setCollisionGroup | логическое | <необязательно> | true | Если true, область будет использовать свою собственную группу столкновений. |
setImpactEvents(state)
Обработка событий столкновения по умолчанию отключена. Включите её, прежде чем будут переданы любые события столкновения.
В активной среде могут генерироваться сотни событий столкновения за каждый шаг, поэтому включайте это только если вы не можете сделать необходимое через beginContact или маски столкновений.
Параметры
| Имя | Тип | Описание |
|---|---|---|
state | логическое | Установите в true, чтобы включить события столкновения, или false, чтобы отключить. |
setMaterial(material, bodies)
Устанавливает заданный Материал для всех Фигур, принадлежащих всем Телам в заданном массиве.
Параметры
| Имя | Тип | Описание |
|---|---|---|
material | Phaser.Physics.P2.Material | Материал, который будет применён к заданным Телам. |
bodies | массив.<Phaser.Physics.P2.Body> | Массив объектов Body, на которых будет установлен заданный Материал. |
setPostBroadphaseCallback(callback, context)
Устанавливает обратный вызов, который будет вызван после того, как Broadphase соберет пары столкновений в мире.
Просто потому, что пара существует, это не значит, что они будут сталкиваться, только то, что они потенциально могут.
Если ваш обратный вызов возвращает false , пара будет удалена из narrowphase. Это остановит проверку столкновений в этот шаг.
Возвращение true из обратного вызова гарантирует, что они будут проверены в narrowphase.
Параметры
| Имя | Тип | Описание |
|---|---|---|
callback | функция | Обратный вызов, который получит данные события postBroadphase. Он должен возвращать boolean. Установите в null, чтобы отключить существующий обратный вызов. |
context | объект | Контекст, в котором будет вызван обратный вызов. |
toJSON() → {object}
Преобразует текущий мир в объект JSON.
Возвращает
Представление мира в формате JSON.
update()
Внутренний цикл обновления P2.
updateBoundsCollisionGroup(setCollisionGroup)
По умолчанию Мир будет устанавливать столкновение всего со всем. Границы мира — это Тело с 4 фигурами, по одной на каждую грань.
Если вы начнете использовать свои собственные группы столкновений, ваши объекты больше не будут сталкиваться с границами.
Чтобы это исправить, необходимо сначала настроить границы, чтобы они использовали свою собственную группу столкновений, *ДО* изменения группы столкновений ваших Sprites.
Параметры
| Имя | Тип | Аргумент | По умолчанию | Описание |
|---|---|---|---|---|
setCollisionGroup | логическое | <необязательно> | true | Если true, границы будут использовать собственную группу столкновений. |
© 2016 Richard Davey, Photon Storm Ltd.
Licensed under the MIT License.
http://phaser.io/docs/2.6.2/Phaser.Physics.P2.html