Quiero verificar una colisión entre dos Sprites en canvas HTML5. Entonces, por el bien de la discusión, supongamos que ambos sprites son objetos IMG y una colisión significa que el canal alfa no es 0. Ahora ambos de estos sprites pueden tener una rotación alrededor del centro del objeto pero ninguna otra transformación en caso de que esto lo haga cualquier más fácil.Detección de colisión perfecta de píxeles en Canvas HTML5
Ahora la solución obvia que se me ocurrió que sería la siguiente:
- calcular la matriz de transformación, tanto para
- encontrar una estimación aproximada de la zona en la que el código debe probar (como desplazamiento de ambos + espacio extra calculado para la rotación)
- para todos los píxeles en el rectángulo de intersección, transforma las coordenadas y prueba la imagen en la posición calculada (redondeada al vecino más cercano) para el canal alfa. Luego abortar al primer golpe.
El problema que veo con eso es que a) no hay clases de matriz en JavaScript, lo que significa que tengo que hacer eso en JavaScript, que podría ser bastante lento, tengo que probar las colisiones cada fotograma que hace que este costoso. Además, tengo que replicar algo que ya tengo que hacer en el dibujo (o lo que el lienzo hace por mí, configurando las matrices).
Me pregunto si me falta algo aquí y si hay una solución más fácil para la detección de colisiones.
No puedo encontrar una respuesta, estoy haciendo esta pregunta demasiado :( – super