2010-05-18 13 views
6

J'ai expérimenté HTML5 toile en codant l'application de base de mind-mapping. J'ai essayé de savoir s'il y a une API javascript utilisée pour gérer un objet dans un canevas comme une détection de collision entre des images ou des formes. Je pense que ce n'est pas une bonne idée d'écrire le mien car il pourrait y avoir une bonne API autour. Toute personne ayant la moindre idée ou des informations à ce sujet. J'apprécierais beaucoup.Quelqu'un sait-il qu'il existe une API de détection de collision pour HTML5 Canvas ..?

+0

Je suis curieux de connaître votre opinion sur le premier google hit pour "collision detection js" :) – Nickolay

Répondre

4

Dernièrement, j'ai expérimenté avec moi-même. J'ai trouvé que Box2DJS est un excellent moteur de physique newtonien, si vous voulez l'essayer. Il est un peu difficile de comprendre le concept au début, mais il devient plus facile que vous continuez, et il est également livré avec de bons exemples. Box2D a été porté vers de nombreuses langues et la plupart utilisent les mêmes méthodes, ou des méthodes très similaires, de sorte que la documentation pour n'importe quel port répondra probablement à vos besoins.

Bonne chance :).

EDIT: Je trouve un lien vers cette documentation sur le site indiqué précédemment: http://www.kyucon.com/doc/box2d/ (ne pouvait pas faire un lien hyper en raison de ma faible réputation me limiter à un par poste, je suis un noob; P)

Il est pour Box2DFlashAS3, mais ils affirment que « les API Box2DJS sont complètement [la] même que ceux de Box2DFlashAS3 »

EDIT: Oh, je viens de remarquer que vous cherchez pour la détection de collision, pas physique, mon mauvais. .. Box2D pourrait peut-être encore fonctionner, mais peut-être pas. Désolé à ce sujet ...

+0

de toute façon, merci pour votre information, SumWon .. let Je vérifie ça .. :) – angos

1

Jetez un coup d'œil à Cake. C'est un plug-in de graphe de scène pour les éléments de toile. Je ne pense pas que ça va faire la détection de collision, mais ça va peut-être vous aider à aller dans la bonne direction. Vous pouvez au moins associer des gestionnaires d'événements à des objets en toile.

1

Box2DWeb a la détection de collision en utilisant Box2D.Dynamics.b2ContactListener.

Box2DWeb est un port de Box2DFlash 2.1a (il a donc DebugDraw et ContactListeners). Il y a un exemple ci-dessous qui distribue tous les événements de contact.

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

Jetez un oeil à GameJS, il est un port Javascript de PyGame (bibliothèque de jeux bien connu pour Python). Il a un concept de sprites et de groupes de sprites et possède une détection de collision assez avancée.