2010-05-18 13 views
6

Eksperymentowałem na płótnie HTML5, kodując podstawową aplikację mapowania umysłu. Próbowałem dowiedzieć się, czy istnieje jakikolwiek API javascript używany do zarządzania obiektem na płótnie, jak wykrywanie kolizji między obrazami lub kształtami. Myślę, że nie jest dobrym pomysłem napisanie własnego, ponieważ może istnieć dobre API. Każdy ma jakąś wskazówkę lub trochę informacji na ten temat. Byłbym bardzo wdzięczny.Czy ktoś wie, czy istnieje interfejs API wykrywania kolizji dla HTML5 Canvas ..?

+0

Jestem ciekaw Twojej opinii na temat pierwszej google trafiła do wykrywania kolizji „js” :) – Nickolay

Odpowiedz

4

Ostatnio sam eksperymentowałem. Odkryłem, że Box2DJS to świetny newtonowski silnik fizyki, jeśli chcesz go wypróbować. http://box2d-js.sourceforge.net/

Początkowo trudno jest uchwycić tę koncepcję, ale w miarę upływu czasu staje się ona łatwiejsza, a także zawiera kilka ładnych przykładów. Box2D został przeniesiony do wielu języków i większość używa tych samych lub bardzo podobnych metod, więc dokumentacja dla dowolnego portu będzie prawdopodobnie odpowiadała twoim potrzebom.

Powodzenia :).

EDIT: Znalazłem link do tej dokumentacji na wcześniej podanej stronie: http://www.kyucon.com/doc/box2d/ (nie udało się uczynić z niej hiperłącze ze względu na mój niski reputacja ograniczające mnie do jednego na stanowisku, jestem noob P)

to dla Box2DFlashAS3, ale twierdzą, że „API Box2DJS są całkowicie [w] same jak Box2DFlashAS3”

EDIT: Oh, właśnie zauważyłem szukałeś wykrywania kolizji, a nie fizyki, mój zły. .. Być może Box2D może nadal działać, ale być może nie. Przepraszam za to ...

+0

W każdym razie, dzięki za informacje, SumWon .. let ja to sprawdzę .. :) – angos

1

Spójrz na Cake. Jest to wtyczka do wykresów sceny dla elementów canvas. Nie sądzę, że wykryje kolizję, ale może pomoże ci we właściwym kierunku. Możesz przynajmniej dołączyć programy obsługi zdarzeń do obiektów canvas, które go zawierają.

1

Box2DWeb ma wykrywanie kolizji za pomocą Box2D.Dynamics.b2ContactListener.

Box2DWeb jest portem Box2DFlash 2.1a (więc ma DebugDraw i ContactListeners). Poniżej znajduje się przykład, który wywołuje wszystkie zdarzenia kontaktowe.

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

Spójrz na GameJS, to port Javascript od Pygame (znana biblioteka gra dla Pythona). Ma pojęcie sprite i grupy sprite i ma dość zaawansowane wykrywanie kolizji.

Powiązane problemy