Интеграция физического движка Box2DJS с рендерерами совсем не сложна. Для примера можно взять популярный pixi.js.
Для начала создадим мир Box2d
Затем, выполняем стандартный код для pixi.js из примеров, немного его расширив и модифицировав.
Затем, для большего удобства, определим функцию добавления тела в мир Box2d
Теперь можно очень резво добавить 4 тела сразу.
Для рисования тел мира Box2d на холсте определим специальную функцию.
Эта функция очень прямолинейна. Вроде и объяснять здесь нечего.
Наконец, рисуем всё наше творчество на холсте раз в 17 мс примерно.
На этапе разработки сцены может понадобиться отладочная отрисовка Box2d. Для этого после определения var renderer следует назначить контекст рисования:
А в функции animate убрать вызовы draw() и renderer.render(stage) добавив при этом:
Данный пример совсем тривиален. Стоит, конечно же, обернуть логические куски кода в удобные структуры. Но это каждый уже решает для себя сам.
2 комментария:
for (body = world.m_bodyList; body; body = body.m_next) {...}
Что-то туплю, как ьакой цикл на CoffeeScript написать?
Можно что-то типа:
body = world.m_bodyList
while body
# do staff
body = body.m_next
Отправить комментарий