Asumamos que estoy usando este personaje.
(fuente: iconbug.com )
¿Cómo implementaría la detección de colisión? El uso de un cuadro delimitador no parece ser una buena aproximación, porque la forma del pájaro no está cerca de un cuadrado.
Estaba pensando en tener una especie de estructura de datos de árbol cuádruple dentro del objeto que represente partes de la imagen. Cada hoja puede ser false
(en caso de que cubra el espacio blanco / transparente fuera del ave) o true
(en caso de que represente un área del ave, es decir, pico, ojo, etc.). Luego, de alguna manera, pruebe el único obstáculo en la escena para colisión con el pájaro.
Pero mis problemas en mi enfoque son:
- No sé cómo inicializar el árbol cuádruple.
- Una vez que se inicializa el árbol cuádruple, no estoy seguro de cómo atravesarlo y usarlo una vez que el obstáculo está dentro de las coordenadas de la imagen.
¿Cómo haría la detección de colisión con personajes no cuadrados?
LE: El otro enfoque que he visto fue utilizar múltiples cuadros delimitadores. Por ejemplo, tendría una o algunas cajas delimitadoras para el pico, y luego algunas para el cabello o la cola. Pero puede volverse tedioso. Si este es un enfoque válido en mi caso, ¿cómo generaría esos cuadros delimitadores? Dudo que tenga que tenerlos codificados en mi programa.
LE2: Me importan las colisiones bastante precisas. No puedo imaginar cómo un solo cuadro delimitador o círculo puede al menos aproximarse decentemente a esa forma, por lo que este enfoque no funcionará.