GamesQuest

Введение в физический движок Box2D

Введение в физику в Clickteam Fusion 2.5 - AllBoxedUp

В этой статье описан пример из самОй программы, под названием AllBoxedUp. Его вы можете найти в папке программы по пути:

…\Clickteam Fusion 2.5\Tutorials\Allboxedup\AllBoxedUp.mfa.

Смысл примера очень простой, там круглыми объектами нужно сбивать коробки и можно регулировать скорость полета, чем-то очень отдаленно напоминает Angry Birds.

В настоящее время появляется все больше новых игр основанных на физике.
Если вы хотите, создать игру с применением физических взаимодействий между объектами, то эта короткая вводная статья о том как работать с физическим движком Box2D в конструкторе игр Fusion 2.5!

Немного физики — три закона Ньютона

1) Всякое тело будет сохранять неподвижность или будет равномерно двигаться до тех пор пока на него не начнут действовать внешние силы.
2) Тело изменяет свои координаты в направлении силы, которая на него действует. Тело прекратит свое движение, когда силы действующие на тело будут равны нулю. Если на тело действуют внешние силы, то характер движения тела измениться в соответствии с направлением и количеством приложенной к нему силы.
3) Каждому действию силы есть противодействие.

Физический 2D мир на движке Fusion 2.5

Объект движка Phisics — Engine обязательно должен быть добавлен в кадр, чтобы работали физико-ориентированные объекты.

объекты Беговая дорожка — перемещает объекты, которые попадают на её. Движется в определенном и постоянном темпе в выбранном направлении. Этот объект идеально подходит для создания беговой дорожки или лифтов для игр типа платформер.
Веревка или цепь — создает реалистичную веревку в физическом мире.
Частицы — это генератор частиц. Это создает бесчисленное количество частиц в физическом мире, с различной скоростью и направлением.
Магнит — работает как магнит в физическом мире: он притягивает объекты, которые находятся в зоне его притяжения. Чем ближе к магниту, тем сильнее от притягивает.
Вентилятор — работает как вентилятор в физическом мире: он создает поток воздуха. Любой объект, который попадает в этот поток будет испытывать воздействие силы в направлении потока. В результате объект будет медленно ускоряться в направлении потока воздуха.
Направление и сила воздуха могут быть установлены в свойствах или действиях.
Булавка — позволяет соединять физические объекты между собой. Поместите его поверх объектов, которые нужно объединить, объекты будут связаны между собой в том месте где наложена булавка.
Земля — позволяет определить поверхность в Box2D. Представляет собой последовательно соединенные точки из которых можно выложить любую форму поверхности.

 

И физические типы движений активного объекта.

Объект физического 2D мира имеет ряд глобальных настроек мира таких как:

Все силы являются векторами.

Так же в физическом мире существуют ещё такие состояния физического тела:

  1. Скорость
  2. Ускорение — быстрота изменения скорости
  3. Импульс — мера движения. При столкновении двух объектов направление и скорость движения каждого из объектов определяется суммой их импульсов.
  4. Механизмы — соединение двух и более объектов для преобразования одного типа движения в другой. Для соединения объектов используется инструмент Phisics — Joint

Они не являются силами с точки зрения физики, но так же оказывают влияние на физические объекты.

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

Столкновение физических тел

Круглые объекты, которые запускаются нажатием правой кнопки мыши имеют тип физического отскакивающего мячика (Physics — Bouncing Ball movement).

Параметры на которые здесь стоит обратить внимание это:

 

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

Точка G у любого физического объекта должна быть в центре, иначе он будет двигаться неправильно.

Попробуйте поставить её в угол, ради прикола, и увидите, что будет.

С коробками дело обстоит так:

У земли тип Physics — Background c параметром Obstacle (препятствие) и формой — Box.

Остальные объекты

Объект счетчика, который служит шкалой скорости для кругов-смайликов. Счетчик имеет тип вертикального бара и заливку градиентом. Начальное значение 100.

Объект жизней, который ограничивает количество выпускаемых кругов. Лучше увеличить их количество, а то 3 выстрела это очень мало.

Объект очков, очки начисляются за каждую упавшую на землю коробку.

Маленький красный квадратик — используется для отражения координат мыши, по умолчанию невидим.

Теперь давайте рассмотрим события физики в коде.

Применение событий физики


Я просто буду объяснять каждое событие по порядку.

1) Событие столкновения коробок с препятствием, нужно для того что бы коробки останавливались касаясь земли

2) Событие столкновения коробок друг с другом

3) Событие столкновения кругов друг с другом

4) Событие столкновения кругов с землей

5) Столкновение коробок и кругов

6) Присвоение координат объекта маленького красного квадратика к координатам мыши.
Нужно для того, что бы применить этот объект в качестве ориентира для направления движения круглого объекта.

7) Когда нажата левая клавиша мыши на значке плюсика, счетчик увеличивается на 2.

8 ) Когда нажата левая клавиша мыши на значке минуса, счетчик уменьшается на 2.

9) Когда кликаешь правой кнопкой мыши — пуляешь круг. Тут все по порядку:

*Клик правой кнопкой мыши
+При том, что количество жизней больше нуля
— Создается круг
— Круг устанавливается в направление к красной точки
— Скорость круга устанавливается в значение счетчика
— удаляется 1 жизнь

10 и 11) Не дает уйти коробкам и кругам за сцену вправо

12)Когда коробка падает она добавляет 1 очко.
Событие реализовано следующим образом: если координата Y коробки меньше 270 (это координата земли на которой стоят коробки), то прибавлять 1 очко. НО очки начислялись бы не переставая пока коробка лежит, для того, что бы такого не происходило используется переменная флаг от коробки. Когда флаг выключен начисляется очко, а после этого включается флаг, запрещая дальнейшее выполнение этого события. Т.к. это флаг коробки, то и событие будет происходить для каждой конкретной коробки.

Скачать исходный файл

Ещё один маленький пример с физикой. По клику ЛКМ падает коробка

Скачать.

Надеюсь, что эта статья была полезной для вас.

В этой статье описан пример из самОй программы, под названием AllBoxedUp. Его вы можете найти в папке программы по пути: ...\Clickteam Fusion 2.5\Tutorials\Allboxedup\AllBoxedUp.mfa. Смысл примера очень простой, там круглыми объектами нужно сбивать коробки и можно регулировать скорость полета, чем-то очень отдаленно напоминает Angry Birds. В настоящее время появляется все больше новых игр основанных на физике. Если вы хотите, создать игру с применением физических взаимодействий между объектами, то эта короткая вводная статья о том как работать с физическим движком Box2D в конструкторе игр Fusion 2.5! Немного физики - три закона Ньютона 1) Всякое тело будет сохранять неподвижность или будет равномерно двигаться…
Введение в физический движок Box2D
Введение в физический движок Box2D
2015-02-19
100

10

Рейтинг: 5 ( 1 голосов)