Основные понятия объектов физического мира

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск

Для создания физических объектов в редакторе используется движок Box2D. Box2D — компьютерная программа, свободный открытый физический движок. Box2D является физическим движком реального времени и предназначен для работы с двухмерными физическими объектами. Полная документация по движку Box2D:

на английском (оригинал): http://box2d.org/manual.html

на русском (перевод имеет неточности и не полный) https://docs.google.com/document/pub?id=1taHWCfoCFFwdn0itFXSS5lKoHKebx4Z-27yZJ6vVACc


Основные понятия

  • Мир (world)

Физический мир включает в себя все тела (bodies), крепления (fixtures) и ограничения (constraints), которые взаимодействуют друг с другом. Box2D поддерживает создание нескольких миров, но обычно в этом нет необходимости или это нежелательно.

  • Фигура (shape)

Плоская геометрическая фигура, такая как окружность (circle) или многоугольник (polygon).

  • Твердое тело (rigid body)

Предмет, состоящий из материала настолько прочного, что расстояние между любыми двумя точками этого предмета является постоянным при любых условиях. Предмет, прочный как алмаз. В дальнейшем, для удобства, мы будем использовать термин «тело» (body), вместо «твердое тело» (rigid body).

  • Крепление (fixture)

«Крепление» привязывает фигуру (shape) к телу (body) и добавляет свойства материала, такие как: плотность (density), трение (friction) и упругость (restitution).

  • Ограничение (constraint)

«Ограничение» – это физическая привязка, которая ограничивает свободу перемещения и/или вращения тел. На плоскости тело имеет 3 степени свободы (движение по вертикали и горизонтали, и вращение). Если мы возьмем тело и прикрепим его булавкой к стене, то мы ограничим движения тела стеной. В данном случае тело сможет только вращаться вокруг булавки, таким образом «ограничение» удалило 2 степени свободы тела.

  • Контактное ограничение (contact constraint)

Специальное «ограничение», предназначенное для предотвращения проникновения твердых тел друг в друга, а также моделирования трения и упругости. Вам не придется создавать такие ограничения; они создаются Box2D автоматически.

  • Соединение (joint)

«Соединение» используется для скрепления вместе двух и более тел. Box2D поддерживает несколько типов соединений: «болтовое» (revolute), «призматическое» (prismatic), «жесткий отрезок» (distance), и другие. Некоторые соединения могут иметь ограничители (limits) и мускулы (motors).

  • Ограничитель соединения (joint limit)

«Ограничитель соединения» устанавливает диапазон движения соединения. Например, человеческое колено или локоть могут двигаться только в определенном диапазоне углов.

  • Мускул соединения (joint motor)

«Мускул соединения» управляет движением соединенных тел согласно степеням свободы соединения. Например, вы можете использовать мускул, чтобы управлять вращением колена.

  • Солвер (solver)

В физическом мире Box2D есть солвер (или «решатель», дополнительно см. http://www.gamedev.ru/code/terms/Solver - прим. перев. tigrojop), который используется для времени продвижения (advance time) и для разрешения контактов и совместных ограничений (joint constraints). Солвер Box2D является высокопроизводительным итеративным солвером, который отрабатывает порядка N раз, где N равно количеству ограничений (constraints).

Примеры использования