Доступная новая бинарная сборка моего физического движка. Повышена точность солвера контактов: тела больше не проникают друг в друга под тяжестью своего веса. Добавлена поддержка интегрирования методом Верле. Исходники ждите в ближайшем будущем – они вскоре будут интегрированы в Atrium.
Пример рисования мышью многоугольников, которые сразу же начинают “жить” в физическом мире. В качестве физического движка используется ChipmunkD – прямой порт Chipmunk на D. Демка может быть использована в качестве основы для physics-based 2D-игры. Единственное ограничение – поддерживаются только выпуклые многоугольники, неконвексная геометрия просто отсеивается и не тесселируется до простых форм.
Внимание! Пример писался достаточно давно – исходный код, скорее всего, не скомпилируется современными версиями DMD без дополнительных “танцев с бубном”.
Не писал уже целый месяц, приношу за это извинения читателям этого блога =) Месяц ушел на создание каркаса физического движка для Atrium. Для решения контактов используется метод Sequential Impulses, поддерживается трение. На данный момент реализованы два типа геометрических объектов – сфера и бесконечная плоскость. Интегрирование пока производится методом Эйлера, планируется поддержка метода Рунге-Кутты.
В представленной демке симулируется система из 6 шаров и плоскости. Красным шаром можно управлять с клавиатуры (клавиши-стрелки). Зеленый шар имеет повышенную массу, большой шар – пониженную.