Read this manual in English

Формы столкновения

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

Примитивные формы

Примитивные формы — это Box, Sphere и Capsule. Добавить примитивную форму можно выполнив клик ПКМ на объекте столкновения и выбрав Add Shape:

Add a primitive shape

Форма Box

У бокса есть позиция, вращение и размеры (ширина, высота и глубина):

Box shape

Форма Sphere

У сферы есть позиция, вращение и диаметр:

Sphere shape

Форма Capsule

У капсулы есть позиция, вращение, диаметр и высота:

Sphere shape

Форма капсулы поддерживается только при использовании 3D физики (настраивается в секции Physics файла game.project).

Комплексные формы

Сложная форма может быть создана либо из компонента тайловой карты либо из выпуклой формы.

Форма столкновения из тайловой карты

В Defold встроена функция, позволяющая легко генерировать физические формы для источника тайлов, используемого тайловой картой. Руководство по источникам тайлов объясняет как добавлять группы столкновений в источник тайлов и назначать тайлы группе столкновений (пример).

Чтобы добавить столкновение к тайловой карте:

  1. Добавьте тайловую карту игровому объекту кликнув ПКМ на игровом объекте и выбрав Add Component File. Выберите файл тайловой карты.
  2. Добавьте объект столкновения кликнув ПКМ на игровом объекте и выбрав Add Component ▸ Collision Object.
  3. Вместо добавления форм компоненту столкновений, задайте в качестве значения свойства Collision Shape файл тайловой карты
  4. Как обычно, задайте свойства объекта столкновения.

Tilesource collision

Учтите, что свойство Group не учитывается в таком случае, так как группы столкновений задаются в источнике тайлов соответствующей тайловой карты.

Выпуклые формы

В Defold встроена функция, позволяющая вам создавать выпуклые формы из трех или более точек. Можно воспользоваться внешним инструментом, таким как Defold Polygon Editor или Physics Body Editor для создания выпуклых форм.

  1. Создайте файл выпуклой формы (расширение файла .convexshape) используя внешний редактор.
  2. Вместо добавления форм к объекту столкновений, в качестве значения свойства Collision Shape укажите файл выпуклой формы.

Форма не будет отрисована в редакторе. Можно включить отладку физики во время выполнения игры, чтобы видеть формы.

Масштабирование форм столкновения

Объект столкновения и его формы наследуют масштаб игрового объекта. Чтобы отключить это поведение, отключите опция Allow Dynamic Transforms в секции Physics файла game.project. Учтите, что поддерживается только равномерное масштабирование, а также то, что будет применено наименьшее значение масштабирования, если было задано не равномерное масштабирование.

Вращение форм столкновения

Вращение форм столкновения в 3D физике

Формы столкновения в 3D-физике могут поворачиваться вокруг всех осей.

Вращение форм столкновения в 2D физике

Формы столкновения в 2D физике могут поворачиваться только вокруг оси z. Вращение вокруг осей X или Y выльется в некорректные результаты и его стоит избегать, даже когда происходит вращение на 180 градусов для фактически переворота формы вокруг оси X или Y. Для переворота физической формы рекомендуется использовать physics.set_hlip(url, flip) и physics.set_vlip(url, flip).