Кто-нибудь знает, есть ли API для обнаружения столкновений для HTML5 Canvas? - PullRequest
6 голосов
/ 18 мая 2010

Я экспериментировал с холстом HTML5, написав базовое приложение для составления карт.Я попытался выяснить, есть ли какой-либо API-интерфейс JavaScript, используемый для управления объектом на холсте, например, обнаружение столкновений между изображениями или фигурами.Я думаю, что это не очень хорошая идея - писать свой собственный, потому что вокруг может быть хороший API.У любого есть подсказка или некоторая информация об этом.Я был бы очень признателен.

Ответы [ 4 ]

4 голосов
/ 19 мая 2010

В последнее время я сам экспериментировал с этим.Я обнаружил, что Box2DJS - отличный ньютоновский физический движок, если вы хотите попробовать его.http://box2d -js.sourceforge.net /

Поначалу довольно сложно понять концепцию, но с течением времени она становится легче, а также есть несколько хороших примеров.,Box2D был портирован на многие языки и большинство использует те же или очень похожие методы, поэтому документация для любого порта, скорее всего, подойдет вам.

Удачи:).

РЕДАКТИРОВАТЬ: Я нашелссылка на эту документацию на ранее указанном сайте: http://www.kyucon.com/doc/box2d/ (не могу сделать ее гиперссылкой из-за моей низкой репутации, ограничивающей меня одной на пост, я новичок; P)

Это для Box2DFlashAS3, но они утверждают, что «API-интерфейсы Box2DJS полностью идентичны API-интерфейсам Box2DFlashAS3»

РЕДАКТИРОВАТЬ: О, я только что заметил, что вы искали обнаружение столкновений, а не физику, мой плох... Возможно, Box2D все еще может работать, но, возможно, нет.Извините за это ...

1 голос
/ 29 марта 2012

Взгляните на GameJS , это Javascript порт PyGame (известная библиотека игр для Python). Он имеет концепцию спрайтов и групп спрайтов и обладает довольно продвинутым обнаружением столкновений.

1 голос
/ 27 июля 2011

Box2DWeb имеет обнаружение столкновений с использованием Box2D.Dynamics.b2ContactListener.

Box2DWeb - это порт Box2DFlash 2.1a (поэтому он имеет DebugDraw и ContactListeners). Ниже приведен пример, который рассылает все события контактов.

var contactListener = new Box2D.Dynamics.b2ContactListener();           
    contactListener.BeginContact = function(contact) {
        console.log('something just hit something else');

        // example to narrow the field
        if( contact instanceof Box2D.Dynamics.Contacts.b2PolyAndCircleContact) {
            // collision of circle to polygon
        }
    };

world.SetContactListener(contactListener);
1 голос
/ 16 августа 2010

Взгляните на Торт . Это плагин графа сцены для элементов холста. Я не думаю, что это сделает обнаружение столкновений, но, возможно, поможет вам в правильном направлении. С его помощью вы можете по крайней мере прикрепить обработчики событий к объектам холста.

...