Сообщений: 92
Написано 16 полезных сообщений (для 38 пользователей)
Ответ: 2D физический движок на чистом Blitz3d
Вернулся к работе над движком. Добавил компоуды, статичные невыпуклые многоугольники, правда в острых углах выпуклые многоугольники могут немного проникать в них.
Box2D тож.
Я плохо читаю чужой код, да и С++ не знаю. Кстати я там не видел невыпуклых многоугольников, а у меня они теперь есть Но правда там трение нормально сделано, и многоугольники не качаются как у меня.
Осталось сделать дополнительные функции управления физикой, и буду писать редактор. В нем можно будеть создать сцену, и в блитце загрузить готовую сцену.
Сообщений: 92
Написано 16 полезных сообщений (для 38 пользователей)
Ответ: 2D физический движок на чистом Blitz3d
Вот иправил движок (теперь почти нет качения, тела устаканиваются), но производительность уменьшилась (40 прямоугольников и фпс <30 у меня). И остались некоторые баги. Есть уже начало редактора.
Круги и прямоугольники думаю понятно как там делать, а при создании выпуклого мн-ка вершины надо обходить против часовой(!). Невыпуклых тел нет.
А вообще не знаю буду ли я продолжать работать над ним дальше.
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
Ответ: 2D физический движок на чистом Blitz3d
Сообщение от baton4ik
Нет, при делении на ноль вылетела бы ошибка!
Невсегда! Если на ноль делется число с плавающе точкой то получается : 1.#INF - это в С++.
Короче получается что делим не на ноль а на 0.00000000000000000000000000000000000000000000001
это связано с неточными расчётами чисел с плавающей точкой
Сообщений: 92
Написано 16 полезных сообщений (для 38 пользователей)
Ответ: 2D физический движок на чистом Blitz3d
Спустя столько времени все же решил закончить движок. Перевел в дллку, оптимизировал, вследствии чего заметно увеличилась скорость, 900 боксов без тормозов!
В архиве две сцены:
1) Рисуем объекты левой кнопкой мыши, а-ля карандашная физика, только тела - не проволочные. Правой кнопкой перемещаем тела, средней - удаляем (тут есть баги).
2) Пирамида боксов. Тут используется ShockPropagation, поэтому стек плохо разваливается.