Сегодня, 20 декабря 2011 года, благополучно состоялся первый публичный релиз физического движка AlternativaPhysics. Технология поставляется в виде SWC-библиотеки и распространяется совершенно бесплатно. Согласно лицензионному соглашению, ее можно использовать в том числе и в коммерческих проектах при условии размещения ссылки на наш официальный сайт alternativaplatform.com.
AlternativaPhysics - это движок для моделирования физического взаимодействия тел различной формы в среде Flash, реализованный на ActionScript. Технология позволяет добавлять объекты на сцену, задавать их физические свойства, управлять ими, моделировать их поведение в соответствии с законами физики. Интегрирована с Alternativa3D для более простого и удобного использования.
Особенности AlternativaPhysicsВысокое быстродействие
Движок оптимизирован с учетом особенностей языка ActionScript 3 и технологии Flash. Это особенно важно для браузерных приложений, учитывая значительные ограничения в используемой памяти и в быстродействии для кода, запускаемого в браузере.
Разнообразие геометрических форм
AlternativaPhysics поддерживает объекты произвольной формы, при этом для каждой формы алгоритмы определения столкновений специально оптимизированы.
Базовые формы
Треугольник, прямоугольник
Сфера, Бокс
Цилиндр, конус
Произвольный выпуклый многогранник
Универсальные формы
Иерархический примитив. Задает тело, состоящее из нескольких базовых примитивов.
Треугольный меш. Задает поверхность произвольного (в том числе невыпуклого) тела.
Устойчивость сложных конструкций
В ходе физической симуляции в AlternativaPhysics сохраняется устойчивость неподвижных конструкций различной сложности, состоящих из большого числа тел (в т. ч. стек, пирамида и другие). Это позволяет избегать ситуации, когда объекты, которые в реальном мире неподвижны, при симуляции начинают трястись, вибрировать, что, в конечном итоге, может привести к разрушению конструкции.
Поддержка ограничений (joints)
Вы можете накладывать ограничения на движение/положение двух объектов относительно друг друга.
-
- Максимальное расстояние. Расстояние между двумя объектами, на которых наложено ограничение, не может превышать заданной величины. Например, можно реализовать подвешенный на веревке шарик, задав ограничения на точки крепления веревки с максимальным расстоянием, равным длине веревки.
- Фиксированное расстояние. Расстояние между двумя объектами, на которых наложено ограничение, должно быть равно заданной величине. Например, шарик, подвешенный на стержне.
- Шаровое соединение (ball-in-socket). Расстояние между двумя объектами должно быть нулевым. С помощью такого ограничения можно реализовать суставы.
- Вращательное, шарнирное соединение (hinge). Два объекты, связанных этим ограничением, могут только вращаться относительно друг друга вокруг заданной оси. Например, колесо на элементах подвески.
Интеграция с Alternativa3D
В дополнение к физическому движку предоставляется библиотека, которая позволяет удобно работать с физическим поведением и изображением одного и того же объекта, используя графический движок Alternativa3D. Физический объект не имеет графического представления сам по себе, поэтому для облегчения моделирования графическое и физическое представление объединяются в один объект. Также в библиотеку интеграции входит класс PhysicsSprite, который инициализирует и автоматически обновляет графическую и физическую сцену. Библиотека предоставляется с исходным кодом. Пример использования находится в базе знаний: Введение в AlternativaPhysics.
Нативная система событий
Поддерживаются следующие типы событий: начало обновления сцены, окончание обновления сцены, появление контакта. Добавление и удаления слушателя на событие - это привычные функции addEventListener и removeEventListener. Более подробно использование событий рассматривается в уроке События в AlternativaPhysics.
Пробуйте, делитесь впечатлениями!

Запустите демонстрацию
Скачайте AlternativaPhysics
Прочитайте документацию
Посмотрите уроки
Обсудите AlternativaPhysics на форуме