Эксперименты с box2d
Привет. Я установил себе этот модуль и посмотрел примеры. Обидно, что первый пример с ошибкой, да ещё просто никакой.
В общем, вместо первого примера я придумал замену. Код:
Framework BaH.Box2D |
Ответ: Эксперименты с box2d
Тут дело в том, что сам модуль box2d писался еще в нулевые года, когда блицмакс был основан на FASM и его версия была древнейшая. С тех пор оригинальный блицмакс давно умер, уступив место новому blitzmax ng. Там произошли кардинальные изменения. Автор модуля просто физически не успевает вносить изменения во все свои модули - у него этих модулей порядка 50. Плюс он же является одним из разработчиков самого BlitzMaxNG.
|
Ответ: Эксперименты с box2d
Разобрался с рендером по умолчанию. Он описан в файле "render.bmx". Исполюзуется для отладочного изображения. При разработке программ очень необходим. Я написал два примера с рендером по умолчанию. Что-бы они запустились их нужно создать в папке BlitzMax\mod\bah.mod\box2d.mod\examples( render.bmx там лежит, или указать полный путь к нему при импорте).
Первый пример повторяет пример из первого сообщения, однако не нужно самому перебирать вершины форм - это сделает рендер и нарисует. Код:
Framework BaH.Box2D Код:
Framework BaH.Box2D Import BRL.FreeTypeFont Import "render.bmx" В файле рендера есть зумирование в 8 раз! Поэтому через глобальные настройки рендера в своём проекте нужно убрать зумирование, вот так xScale=1 yScale=1 Но это ещё не всё. Почему-то рендеру надо задовать смещение в ширину мира(или экрана, надо проверить, так как у меня ширина мира равна ширине экрана). SetOrigin(0,WORLD_HEIGHT) Иначе он неправильно выводит объекты. Надо ещё включить рендер! Командой Рендер.SetFlags(Флаги) где флаги совмещаются по OR Флаги e_shapeBit = 0x0001, ///< draw shapes e_jointBit = 0x0002, ///< draw joint connections e_coreShapeBit = 0x0004, ///< draw core (TOI) shapes e_aabbBit = 0x0008, ///< draw axis aligned bounding boxes e_obbBit = 0x0010, ///< draw oriented bounding boxes e_pairBit = 0x0020, ///< draw broad-phase pairs e_centerOfMassBit = 0x0040, ///< draw center of mass frame e_controllerBit = 0x0080, ///< draw controllers |
Ответ: Эксперименты с box2d
Разобрался с рендером по умолчанию. Для правильного вывода нужно задавать смещение в высоту экрана(окна).
Пример(Для работы примеров нужно скопировать в папку проекта render.bmx из BlitzMax\mod\bah.mod\box2d.mod\examples): Код:
Framework BaH.Box2D сделал капсулу коллизий (хотя в материале не капсула, а прямоугольник) и управление как у платформера: Код:
Framework BaH.Box2D |
Часовой пояс GMT +4, время: 16:39. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot