Использование KineticJS вместе с box2dweb

Как использовать kineticJS вместе с box2dweb, чтобы можно было обнаруживать столкновения? Например, как я могу поместить круговую границу вокруг изображения, полученного с помощью kineticJS, и применить физику с помощью box2dweb?

Есть ли хорошие учебники по этому или любым кодам, которые могут мне помочь? Или есть какой-нибудь эффективный способ обнаружения столкновений с самим kineticJS?

2 ответа

Решение

Что вы делаете, это:

  1. Настройте box2d "мир" - думайте о мире как о комнате на земле (или любой другой планете)

  2. Добавьте "тела" в мир - тела - это движущиеся или неподвижные объекты, которые ведут себя в соответствии с назначенной им физикой.

  3. Для каждого тела box2d назначьте kineticJs "skin" - скины - это "красивые" объекты формы kineticJs, которые будут нарисованы на холсте kineticJs. Например, в игре скин может быть футбольным мячом.

  4. Приведите мир box2d в движение и прослушайте событие "tick" box2d - событие tick срабатывает, когда box2d выяснил физику, которая произошла за указанный вами промежуток времени. На данный момент box2d знает положение и поворот каждого тела box2d в мире box2d.

  5. В случае галочки 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

Другие вопросы по тегам