Поведение "Physics"

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

Примечание: атрибут Solid (твердый) не имеет отношения к поведению физики. Объект должен иметь поведение, чтобы реагировать на другие объекты с поведением физики. Обычно, добавление поведения с включенной опцией Immovable (недвижимый) воспроизводит твердый объект, но только c физическим поведением.

Реализм

Движок Box2D пока еще уязвим, что допускает ошибки, неточности и нереалистичные ситуации. Чтобы ваша игра хорошо смотрелась, старайтесь делать симуляцию реалистичной. Движок не справляется с большой разницей в размерах, массе и т.д. (например, столкновение очень больших объектов и очень маленьких, или очень тяжелых с очень легкими). Он также не очень хорошо справляется с большой силой или скоростью (например, столкновение мяча со стеной с силой 1.000.000 ньютонов). Но поскольку это не реалистичные ситуации, и движок имеет ограниченную точность расчетов, то вы можете столкнуться с непредвиденным поведением, если поставите нереальные значения.


Примечание: Существует максимальное ограничение 20.000 x 20.000 на размер уровня с поведением физики. Если вы превысите этот размер, поведение физики перестанет работать.

Контроль с помощью событий

Физическое поведение контролируется действиями Set force (установить силу), Set velocity (установить скорость) и другими параметрами поведения. Если вы используете действие наподобие Set X (установить Х) или Set Y (установить Y) на объекте спрайта, то на физическом движке оно будет иметь эффект «телепортации». Таким образом, оно не будет правильно реагировать на столкновения. Похожая вещь случается, если применить еще одно поведение, например, 8-direction (8 направлений). Чтобы убедиться, правильно ли работает поведение физики, просто сдвиньте объект с помощью действий физического поведения.

Свойства

Gravity (гравитация) — если включено, объект падает с глобальной гравитационной силой (см. в конце).

Immovable (недвижимый) — объект имеет бесконечную массу, и не может сдвинуться другими объектами при столкновении.

No rotation (не поворачивать) — если включено, то угол объекта не будет меняться в соответствии с углом его движения.

Mass (вес) — вес объекта (насколько он тяжелый). Тяжелейший объект в сцене не должен иметь массу более чем в 100 раз превосходящую массу самого легкого объекта (чтобы симуляция была реалистичной).

Linear damping (линейное затухание) — значение, с которым объект замедляется при свободном движении в пространстве. Если 0, то объекты будут двигаться всегда, как в космосе. В противном случае, они замедлятся до полной остановки.

Angular damping (угловое затухание) — значение, с которым свободно вращающийся объект замедляется. Если 0, то объекты будут двигаться всегда, как в космосе. В противном случае, они замедлятся до полной остановки вращения.

Contact friction (трение) — насколько сильно затрагивается объект при продолжительных столкновениях (например, скольжении).

Contact elasticity (упругость) — упругость при столкновениях.

Collision mask (маска столкновения) — область, с которой сталкиваются объекты. Физический движок не может пока воспользоваться преимуществом режима столкновения Per Pixel (по пикселю), поэтому пока поддерживаются следующие варианты:

  • Bounding Box (прямоугольник) — объект сталкивается как будто бы он был квадратной формы.
  • Ellipse (овал) — объект сталкивается как будто бы он был эллиптической формы (или в идеале круглой, если ширина и высота равны)
  • None (нет) — объект не может сталкиваться, но все еще затрагивается физическими силами.
  • Custom (настраиваемое) — используйте Custom collision mask (настраиваемая макса столкновения), чтобы отредактировать многоугольник, с которым сталкивается объект.

Custom collision mask (Edit) (редактирование маски столкновения) — нажмите, чтобы отредактировать маску столкновения. Она представляет собой многоугольник вокруг объекта. Используется для неравномерных объектов. Настройка Collision mask (маска столкновения) должна быть установлена как Custom (настраиваемая). Кликайте вокруг границ вашего объекта, чтобы установить точки. Вы можете использовать Control + колесико мыши для большего удобства. Чем меньше точек вы используете, тем более эффективным будет столкновение. Нажмите Delete last point (удалить последнюю точку), чтобы отменить последнее добавление. Когда все сделано, нажмите Close (закрыть), чтобы закрыть.

Global Properties (Глобальные свойства)

Следующие настройки затрагивают все объекты на уровне с физическим поведением.

World solver (глобальный процесс) — компромисс между тем, насколько быстро происходят физические процессы, и тем, насколько точно они симулируются. Наиболее быстрая опция Linear (линейный) рекомендуется для большинства игр, так как время вычислений процессов, скорее всего, должно быть ограниченным.

World friction (глобальное трение) — компромисс между скоростью и точностью при расчете трения. Наиболее быстрая опция Adaptive (адаптивный) рекомендуется для большинства игр, так как время вычислений процессов, скорее всего, должно быть ограниченным.

World X scale / World Y scale (глобальный X/Y масштаб) — масштаб, с которым пиксели соотносятся с игровыми единицами. Это настраивает размер физической «вселенной», и как скорости соотносятся со скоростью пикселей в секунду.

World gravity (глобальная гравитация) — сила гравитации всех объектов, у которых включена гравитация.



Автор перевода: Mary Jane

Опубликовано: 10 июля, 2010

Категория: Поведения