Physicsobject

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

Объект типа «Physicsobject» необходим для описания объектов в физмире его можно создать выбрав->тип объекта->Game mechanic->Physicsobject.

Объекты типа Physicsobject - обязательно помещаются в группу физического мира 
physicsworld как это показано на картинке справа.

Свойства элемента:

Физика6.PNG
  • Тип — тип физического тела: статическое, кинематическое и динамическое.
  • Статические тела — имеют нулевую скорость, нулевую массу, перемещать во вьювере нельзя.
  • Динамические тела — имеют не нулевую скорость, положительную массу, перемещать во вьювере можно.
  • Кинематические тела — имеют не нулевую скорость, нулевую массу, перемещение определяется по законам кинематики.
  • Плотность — плотность тела. Влияет на массу тела. В большинстве игр имеет смысл вычислять массу, учитывая плотность фигур.
    Это позволяет проверить, имеют ли тела реалистичную массу. Например, в механизме наподобие весов, который требует точные значения масс.
  • Трение — сила трения. По умолчанию стоит 0,3. Чем выше сила трения тем тяжелее воздействовать на него другим телом. Зависит от рода соприкасающийся поверхностей и от величины нагрузки. Результирующее значение вычисляется как среднее геометрическое из значений пары взамодействующих объектов.
  • Отскок — это отношение скорости отскока к скорости падения. При столкновении выбирается большее значение среди пары взаимодействующих объектов.
  • Линейное демпфирование — затухание линейного движения тела, его отскоков. (представляет собой коэффициент от 0 до 1)
  • Угловое демпфирование — затухание вращения тела. (представляет собой коэффициент от 0 до 1)
  • Масштаб гравитации — сила притяжения тела по вертикали. (может быть больше единицы, аналог абсолютной величины вектора)

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

  • Невращаемое — если 0 — тело можно вращать, иначе — нет.

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

7 pppp.jpg 8 pppp.jpg 6 phyz.jpg

При попадании мячом по попугаю, попугай начинает кричать. Создаем для попугая машину parrot_1, в которой прописываем состояния:

  • 2 — спокойный
  • 4 — начинает кричать

Создаем статический физ_объект parrot_1, который делаем невидимый (по альфе ставим 0) и задаем положение в месте размещения машины parrot_1.
Создаем динамический физ_объект ball (в данном примере — это мяч) и задаем ему слушатель столкновений.

Состояния

Ниже приведены общие и специальные состояния которые могут передаваться нашему объекту.

Общие

Физ-объекты могут иметь состояния active и inactive.

  • active - это включенное состояние объекта, в котором он является объектом физического мира и взаимодействует с другими объектами
  • inactive - это выключенное состояние объекта, в котором он не является объектом физического мира и не взаимодействует с другими объектами

Физика3.PNG

Специальные

Физ-объекты Также имеют специальные параметры и состояния для совершения над ними действий. Будут описаны в виде:

  • описание
  • параметр который надо задать
  • состояние в которое надо перевести физ.объект
  • Задание скорости. Меняется только модуль вектора скорости, направление не меняется.
  • st_vel - скорость
  • st_vel_max - максимальная скорость среди случайных
  • velocity
  • Мгновенное перемещение(телепортация).
  • st_pos_x - координата по X
  • st_pos_y - координата по Y
  • st_pos_r1 - радиус внутреннего круга в котом случайно размещается объект
  • st_pos_r2 - радиус внешнего круга в котом случайно размещается объект
  • transform

Если необъодимо поместить объект в случайное место в некоторой области, то необходимо задать центральную точку с помощью st_pos_x и st_pos_y, и радиусы кругов с помощью параметров st_pos_r1 и st_pos_r2, между которыми будет находиться область в которую будет помещена точка. После этого перевести объект в состояние transform.

Если необходимо передать объекту случайную скорость, то необходимо задать минимальную скорость с помощью параметра st_vel и максимальную скорость с помощью параметра st_vel_max. После этого перевести объект в состояние transform.

  • Перемещение с заданной скоростью.
  • st_pos_x - координата по X
  • st_pos_y - координата по Y
  • st_vel - скорость
  • target
  • Задание направления вектора скорости
  • st_move_phi - угол в градусах. Отсчёт от 12 часов на часах. 12 часов - 0 градусов; 3 - 90; 6 - 180 и т.д.
  • st_move_phi_max - максимальный из случайных углов в градусах. Если значение присутствует, оно больше 0 и больше st_move_phi, то между st_move_phi и st_move_phi_max будет выбран случайный угол.
  • st_vel - скорость
  • move

менять состояние можно машиной из вне например :

Физика4.PNG

Настройки формы

Физ_объектами могут быть не только прямоугольники. Шейп (Shape) можно задавать полигоном и кругом в Shape editor(Находится в редакторе ресурсов).
Но следует помнить, что количество вершин в полигоне должно быть от 3 до 8. Создавать новую шейп-фигуру можно несколькими полигонами.

Физика5.PNG

Добавляемые свойства

Phys 2.jpg

+.pngслушатель столкновений: — дает возможность при столкновении с другим физ_объектом перевести какой-то объект (например машину) из одного состояние в другое.

объект - Объект типа physicsobject, столкновения с которым слушаются
слушатель - Объект типа machine, который реагирует на столкновение
начало - Состояние, в которое переводится слушатель при наступлении столкновения
конец - Состояние, в которое переводится слушатель в конце столкновения

+.pngнажали на объект: изменить состояние объекта

объект - Объект, состояние которого нужно изменить
состояние - Новое состояние объекта

+.pngнажали на объект: изменить свойство объекта

объект - Объект, свойство которого нужно изменить
свойство - Свойство, которое нужно изменить
значение - Новое значение свойства

+.pngотпустили объект: изменить состояние объекта

объект - Объект, состояние которого нужно изменить
состояние - Новое состояние объекта

+.pngотпустили объект: изменить свойство объекта

объект - Объект, свойство которого нужно изменить
свойство - Свойство, которое нужно изменить
значение - Новое значение свойства