Разница между физикой аркад, P2 и ниндзя в Phaser

33

Я новичок и пытаюсь научиться разрабатывать игры, используя Phaser . В настоящее время Phaser предоставляет три физические системы, а именно Arcade, P2 и Ninja. Но я не знаю различий между ними, и я также хотел бы знать, в каком сценарии мы должны использовать конкретную физическую систему?

Пожалуйста, дайте мне некоторое представление об этих физических системах.

Виджай
источник
1
Phaser поставляется с нашей системой Arcade Physics, Ninja Physics и P2.JS - системой физики всего тела. Arcade Physics предназначена только для высокоскоростного столкновения AABB. Физика ниндзя допускает сложные плитки и уклоны, идеально подходящие для пейзажей уровня, а P2.JS - это физическая система всего тела с ограничениями, пружинами, поддержкой многоугольников и многим другим.
congusbongus
И теперь есть платная версия Box2D, которая должна быть похожа на P2.JS, но лучше.
Сиро Сантилли 事件 改造 中心 法轮功 六四 事件

Ответы:

39

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

Arcade Physics предназначена только для высокоскоростного столкновения AABB.

AABB означает выровненные по оси ограниченные прямоугольники; это означает, что у вас есть объекты без поворота, и вы только проверяете, перекрывает ли изображение (которое является прямоугольником) другое изображение (таким образом, существует потенциальная коллизия). Это дешево и быстро, поэтому, вероятно, они рекомендуют его для высокоскоростных столкновений.

Одна проблема с AABB состоит в том, что это не гарантирует, что действительно есть столкновение; у вас может быть полностью прозрачная область перекрытия.

Физика ниндзя допускает сложные плитки и склоны, идеально подходящие для ровного пейзажа, [...]

Помните, как AABB не вращается? Физика ниндзя будет обрабатывать повороты (поэтому она может делать уклоны и сложные плитки). Это более гибкая (и, возможно, более точная) физическая модель; это, вероятно, медленнее.

[...] P2.JS - это физическая система всего тела с ограничениями, пружинами, поддержкой многоугольников и многим другим.

Если вам нужно смоделировать пружины (например, что-то качающееся, как маятник), ограничения на силы и произвольные формы многоугольника (например, тетраэдр), это звучит как то, что вы хотите. Если вам нужна система отсчета, подумайте о чем-то вроде Angry Birds.

В зависимости от вашей игры вы можете выбрать наиболее подходящий для вас вариант. Звучит как спектр скорости и точности / сложности (физика аркад - самая быстрая, но самая простая).

ashes999
источник
один случай более точной модели снижает производительность?
expiredninja
@expiredninja Да, конечно. AABB быстро и дешево; два других являются более сложными и многофункциональными (например, уклоны, повороты), поэтому они имеют высокую производительность.
ashes999
я думаю, мне было интересно узнать, каковы обычно пороговые значения с точки зрения количества и / или сложности объектов.
expiredninja
2
@expiredninja, это будет во многом зависеть от вашего оборудования и игровой логики. Я предлагаю вам открыть еще один вопрос, или еще лучше, просто попробуйте их и посмотрите, что лучше всего подходит для ваших нужд.
ashes999