Estoy trabajando en un tirador 2D de arriba hacia abajo, y ahora necesito ir más allá de mi sistema básico de colisión de rectángulo delimitador.
Tengo grandes niveles con muchos sprites diferentes, todos los cuales tienen diferentes formas y tamaños. Las texturas para los sprites son todos archivos png cuadrados con fondos transparentes, por lo que también necesito una forma de tener una colisión solo cuando el jugador entra en la parte coloreada de la textura, y no en el fondo transparente.
Planeo manejar la colisión de la siguiente manera:
- Comprueba si algún sprite está dentro del alcance del jugador
- Haga una prueba de colisión de caja de delimitación recta
- Hacer una colisión precisa (donde necesito ayuda)
No me importan las técnicas avanzadas, ya que quiero hacer esto bien con todos mis requisitos en mente, pero no estoy seguro de cómo abordar esto. Qué técnicas o incluso bibliotecas probar. Sé que probablemente necesitaré crear y almacenar algún tipo de forma que represente con precisión cada sprite menos el fondo transparente.
He leído que por píxel es lento, por lo que, dado mis grandes niveles y la cantidad de objetos, no creo que sea adecuado. También he visto Box2d, pero no he podido encontrar mucha documentación, ni ejemplos de cómo ponerlo en funcionamiento con SFML.
fuente