Использование KineticJS вместе с box2dweb
Как использовать kineticJS вместе с box2dweb, чтобы можно было обнаруживать столкновения? Например, как я могу поместить круговую границу вокруг изображения, полученного с помощью kineticJS, и применить физику с помощью box2dweb?
Есть ли хорошие учебники по этому или любым кодам, которые могут мне помочь? Или есть какой-нибудь эффективный способ обнаружения столкновений с самим kineticJS?
2 ответа
Что вы делаете, это:
Настройте box2d "мир" - думайте о мире как о комнате на земле (или любой другой планете)
Добавьте "тела" в мир - тела - это движущиеся или неподвижные объекты, которые ведут себя в соответствии с назначенной им физикой.
Для каждого тела box2d назначьте kineticJs "skin" - скины - это "красивые" объекты формы kineticJs, которые будут нарисованы на холсте kineticJs. Например, в игре скин может быть футбольным мячом.
Приведите мир box2d в движение и прослушайте событие "tick" box2d - событие tick срабатывает, когда box2d выяснил физику, которая произошла за указанный вами промежуток времени. На данный момент box2d знает положение и поворот каждого тела box2d в мире box2d.
В случае галочки box2d проверьте положение / вращение каждого тела box2d и нарисуйте скин kineticJs в той же позиции / вращении на теле box2d.
Очень хороший пример можно найти по адресу: http://www.luxanimals.com/blog/article/combining_easel_box2d
В этом примере для рисования на холсте используются мольберты, но преобразование в библиотеку kineticJs очень просто - применяются те же понятия.
[отредактировано, чтобы дать дополнительную информацию]
Также, если вам не нужна вся физика в box2d, вот очень простой тест на столкновение с двумя кругами с использованием kineticJs.
function CirclesAreColliding(circle1,circle2){
var dx = circle2.getX() - circle1.getX();
var dy = circle2.getY() - circle1.getY();
if( Math.sqrt( dx*dx + dy*dy ) <= ( circle1.getRadius() + circle2.getRadius() ) {
return true;
}
return false;
}
Это учебник об этом. удачи http://www.codeproject.com/Articles/571743/Box2D-and-JavaScript-Part-3