Pixel Perfect Détection de Collision en HTML5 Canvas

Je veux vérifier une collision entre deux Sprites en HTML5 canvas. Pour le bien de la discussion, supposons que les deux sprites sont IMG objets et une collision signifie que le canal alpha n'est pas 0. Maintenant, tous les deux sprites peuvent avoir une rotation autour du centre de l'objet, mais aucune autre transformation dans le cas où cela rend tout plus facile.

Maintenant la solution la plus évidente, je suis venu avec serait celui-ci:

  • calculer la matrice de transformation pour les deux
  • figure une estimation approximative de la zone où le code de test (comme le décalage de + calculé de l'espace supplémentaire pour la rotation)
  • pour tous les pixels de l'intersection de rectangle, de transformer les coordonnées et test de l'image à la position calculée (arrondi au plus proche voisin) pour le canal alpha. Alors abandonner sur le premier coup.

Le problème que je vois c'est que a) il n'existe pas de matrice de classes en JavaScript qui signifie que je dois le faire en JavaScript qui pourrait être assez lent, j'ai tester les collisions à chaque image, ce qui rend ce assez cher. En outre, j'ai pour répliquer quelque chose que j'ai déjà à faire sur le dessin (ou de ce canevas ne pour moi, la définition des matrices).

Je me demande si je suis absent quelque chose ici, et si il y a une solution plus facile pour la détection de collision.

Je ne peux pas trouver une réponse, je pose aussi cette question 🙁

OriginalL'auteur Armin Ronacher | 2010-04-30