Физика в Construct 2: Основные моменты

уроки, мануалы, советы по Construct 2

Сообщение Физика в Construct 2: Основные моменты
» 25 фев 2013, 09:50

В Constuct 2 для использования физики в игре существует специальное поведение - Physics (работающее на Box2DWeb). Оно позволяет перемещать объекты с использованием реальной физики - вот пример, чтобы показать суть. Физика поможет сделать Ваши игры по-настоящему веселыми и привлекательными.

Вместе с Construct 2 идет большое количество примеров. Нажмите на Browse all example на стартовом экране программы. Все примеры связанные с физикой начинаются на "Physics - ", например, "Physics - basics.capx". Рекомендую взглянуть.

Как добавить физику
Кликните на объект, к которому нужно добавить физику. В окне свойств (Properties), нажмите Add / Edit under Behaviors. Далее нажмите на зеленый плюс и в открывшимся окне выберите Physics. Готово!

Гравитация
Изначально на все объекты действует гравитация, которая ускоряет их вниз. По умолчанию сила гравитации равна 10 (напомню, увеличение координаты Y - это вниз в Construct 2). Если хотите отключить (или изменить) гравитацию, то используйте действие Set world gravity .
Примечание: сила гравитации относится ко всему миру, т.е. ко всем объектам. Например, если отключить гравитацию у одного объекта, то гравитация будет отключена у всех.

Изображение

Неподвижные объекты
Если применить к полу поведение Физики, то Вы заметите, что он упадет вниз за экран. Чтобы этого не произошло, есть свойство Immovable. Это даст объекту бесконечную массу, другими словами объект станет неподвижным.

Изображение
На заметку: Физические объекты взаимодействуют только с физическими объектами. Добавление поведения Твердый (Soild) не даст эффекта, объекты с физикой просто-напросто проигнорируют этот объект.

Другие свойства Физики
Маска столкновений (Collision mask)
Задает форму при обработке столкновений.
По умолчанию используется Use collision polygon. В редакторе изображений при помощи инструмента collision polygon tool можно задать точки столкновения. Осторожно, не используйте много точек, это может повлиять на производительность игры.

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

Предотвращение вращения (Prevent rotation)
Если включено, то объект никогда не будет вращаться (даже если упал на глядящий угол). Это очень полезно, когда углами управляете Вы самостоятельно. Например без включения этой опции в платформере, Игрок, при попытки бежать, спотыкается и падает на лицо.

Плотность (Density)
Плотность используется, чтобы определить массу объекта.
Масса объекта вычисляется как плотность, умноженная на размеры объекта. Т.е. при одинаковой плотности, огромные предметы имеют бОльшую массу чем маленькие.

Трение (Friction)
Трение определяет, насколько замедлится один объект, двигаясь по поверхности другого. Нулевое трение похоже на коньки на льду, а высокое - на движения кирпича по бетону.

Эластичность (Elasticity)
Эластичность (или "пружинистость" или "реституция") определяет насколько "прыгучий" объект.

Линейное демпфирование (Linear damping)
Нулевое значение означает, что объект будет двигаться как в космосе, т.е. продолжать движение всегда. Увеличение значения заставляет объекты постепенно замедлятся, что в конечном счете приведет к остановке. Похоже на сопротивление воздуха.

Угловое демпфирование (Angular damping)
Угловое демпфирование очень похоже на линейное, но здесь замедляется вращение. Опять же, в космосе, вращения не замедляются, поэтому предметы будут вращаться вечно. Чем выше значение, тем быстрее объект будет замедлять свое вращение.
Примечание: Скорость движения не влияет на замедление вращения.

Советы при работе с Физикой
Производительность
Физика - очень интенсивный потребитель центрального процессора. Могут потребоваться больше ресурсы. Не рекомендуется использовать более чем 100 подвижных объектов, иначе это может серьезно повлиять на производительность. Кроме того, у телефонов и планшетов еще более ограниченные ресурсы, и если игра будет на них, то стоит быть осторожным, постараться использовать 20-30 объектов максимум.
Также хочется сказать о "спящих" объектах. Если объект не двигается (совсем), то он переходит в "спячку" - он больше не требует обработку физики и это существенно экономит ресурсы.

Стабильность
Иногда моделирование физики не совсем настоящее. Если Вы создаете не реалистичные вещи, например гигантский конкретный объект, летящий на скорости звука, то результат не будет реалистичным. Постарайтесь все держать в разумных пределах. Старайтесь не создавать быстродвижушихся тяжелых вещей. Лучше всего объекты размером 5-500 пикселей, без чудовищных пропорций типа 5x500.
Иначе говоря, чтобы физика вела себя реалистично, старайтесь создавать объекты реалистичными.

Ручное Движение И Другие Поведения
Если перемещать объекты действиями (например, SetX или SetY), или другими проведениями (8-Direction, например), то физика будет стараться не отставать от этого. Но все же, Авторы рекомендуют использовать силы и импульсы, это позволит держать все объекты "в физическом мире" и сделает их более реалистичными.

Вы можете совместить поведения Платформер'а и Физики, но они не особо уживаются. Опять таки, лучше всего использовать силы для этих целей. См. пример "Physics - rolling platformer.capx".

Заключение
Физика может быть действительно забавной, но не забывайте избегать огромного количества подвижных физических объектов, старайтесь перемещать объекты только силами и импульсами. И не помешает знать теоретическую часть физики.


От Переводчика
Переводил сам, так что все камни и похвалу кидать мне :rolleyes2:
Автор: Ashley.
Ссылка на оф. статью
Аватара пользователя

Игродел
Сообщений: 226
Я тут с 11 фев 2013
Откуда: Россия, О. Сахалин
Skype: Seryiza
Репутация 180 [ ? ]

Сообщение Re: Физика в Construct 2: Основные моменты
» 25 фев 2013, 13:09

Спасибо, было познавательно.
Изображение
Аватара пользователя

Игродел
Сообщений: 1018
Я тут с 14 сен 2012
Откуда: Красноярск
Репутация 119 [ ? ]

Сообщение Re: Физика в Construct 2: Основные моменты
» 25 фев 2013, 20:50

Спасибо!+
Аватара пользователя

Игродел
Сообщений: 494
Я тут с 04 янв 2013
Репутация 66 [ ? ]

Сообщение Re: Физика в Construct 2: Основные моменты
» 03 мар 2013, 12:16

Супер! Проглядел - хороший перевод :ok: :clapping: :good2:
Аватара пользователя

Игродел
Сообщений: 405
Я тут с 08 янв 2013
Откуда: Мск
Репутация 205 [ ? ]

Сообщение Re: Физика в Construct 2: Основные моменты
» 10 сен 2013, 11:27

Товарищи-ребята, прочел строчку тут случайно и в связи с текущей полировкой игры возник по ней вопрос:

Seryiza писал(а):Ручное Движение И Другие Поведения
Если перемещать объекты действиями (например, SetX или SetY), или другими проведениями (8-Direction, например), то физика будет стараться не отставать от этого. Но все же, Авторы рекомендуют использовать силы и импульсы, это позволит держать все объекты "в физическом мире" и сделает их более реалистичными.


В моей игре есть большое физическое тело, висящее в воздухе и крутящееся через Set angular velocity. Я закрепляю это тело путем: every tick->set position to XY. Если поставить телу параметр Immortable(вместо постоянной калибровки по ХУ) - оно не поддается силам angular velocity. Как мне удержать данное тело на месте(чтоб оно не падало и игнорировало силы взаимодействия от других тел, с ним соприкасающихся)?
Изображение
Аватара пользователя

Модератор
Сообщений: 2937
Я тут с 19 дек 2012
Откуда: Новый Уренгой
Репутация 284 [ ? ]

Сообщение Re: Физика в Construct 2: Основные моменты
» 10 сен 2013, 11:44

Попробуй поведение PIN, я тут экспериментировал создал цепь и закреплял нижний пандус, чтобы выглядела как платформа висящая на цепях... круто получается... и прикреплял нижнюю панельку на которой стоять можно поведением PIN хорошо приклепляет все... ! при старте его делаешь... и в евери тик меньше событий будет =))
Аватара пользователя

Игродел
Сообщений: 3572
Я тут с 30 окт 2012
Двиг: C2\Unity
Лицензия: Personal
Skype: asmatrix116
VK: vk.com/red.gear
Репутация 202 [ ? ]

Сообщение Re: Физика в Construct 2: Основные моменты
» 10 сен 2013, 11:57

А поставить в нужную точку физ. immovale объект 8*8 - и к нему с помощью joint крепить твои астероиды. Или я не правильно понял?
Аватара пользователя

Игродел
Сообщений: 373
Я тут с 24 ноя 2012
Репутация 77 [ ? ]

Сообщение Re: Физика в Construct 2: Основные моменты
» 10 сен 2013, 12:36

Хех, Pin конечно больше подошел для мертвого закрепления, но джоинт-крепеж будет более правильным с точки зрения онли физикс + вышел довольно прикольный эффект, когда у меня при старте уровня астероид был не центрирован) Возможно использую на каких-нибудь уровнях - он как буд-то на оттянутой резинке с постепенно затухающей амплитудой стал + вращение - прям новое геймплейное решение)
Изображение
Аватара пользователя

Модератор
Сообщений: 2937
Я тут с 19 дек 2012
Откуда: Новый Уренгой
Репутация 284 [ ? ]

Сообщение Re: Физика в Construct 2: Основные моменты
» 10 сен 2013, 12:56

Блин, вроде нормально все было поначалу с Pin, но что-то коллизии теперь сбило все - героя швыряет, он цепляет воздух и т.п.
Изображение
Аватара пользователя

Модератор
Сообщений: 2937
Я тут с 19 дек 2012
Откуда: Новый Уренгой
Репутация 284 [ ? ]

Сообщение Re: Физика в Construct 2: Основные моменты
» 10 сен 2013, 13:12

mef1sto писал(а):Как мне удержать данное тело на месте(чтоб оно не падало и игнорировало силы взаимодействия от других тел, с ним соприкасающихся)?

mef1sto писал(а):Авторы рекомендуют использовать силы и импульсы,

А что если на саом деле использовать импульсы? каждый тик давать астроиду небольшой импульс, направленный в точку "где должен быть астероид", и зависящий от отклонения астероида от его координат (чем больше отклонение - тем сильнее импульс)?

Правда, тогда астероид будет "дрожащим", "пьяным", но тоже - вариант решения )))
impulse.capx
(82.55 КБ) Скачиваний: 245
Астероид, старающийся держаться на своем месте только за счет импульсов
Аватара пользователя

Игродел
Сообщений: 477
Я тут с 03 янв 2013
Откуда: Новосибирск
Лицензия: Personal
Репутация 79 [ ? ]



Вернуться в Уроки по Construct 2

Сейчас эту тему просматривают

Зарегистрированные пользователи: нет зарегистрированных пользователей

Наверх