[Programación DS] Saber si se está tocando un area

Hola,

Tengo una duda sobre libnds.

¿Cómo podría saber si se está tocando un área en concreto? Por ejemplo, el que ocupa un sprite. Es decir, que toque cualquier parte de la pantalla donde está el sprite y por ejemplo se escriba "Has tocado el sprite"

He probado con un for pero no lo consigo de ninguna manera, y puede que sea porque tampoco sé C del todo.

¿Podrían ayudarme?

Gracias :p
Al ser libnds ni idea pero, PA_SpriteTouched(nº sprite); se usa con PAlib.
Ya, con PAlib sé hacerlo, el problema es que para este proyecto he decidido usar sólo libnds y NFlib principalmente (no sé si conoceréis esa libreria, es la de NightFox), pero el problema es que no incluye ningua función que haga el trabajo de PA_SpriteTouched();

Intenté buscar esa función en las librerías de la PAlib, pero no la encontré :S por eso no sé cómo hacerlop
capturas la posición x e y de la esquina superior izquierda del sprite.

a las posiciones x e y del ratón le restas las posiciones x e y del sprite

compruebas si el pixel del resultado de la resta en el sprite es sólido.

Es decir.

Esquina del objeto en (55, 32);
mouse en (65, 52)

restamos (65-55, 52-32)

Nos sale (10,20)

comprobamos si el pixel (10,20) de la imagen es sólido.
Tu duda no es sobre libnds, es algo bastante básico de C.
Hymake escribió:He probado con un for pero no lo consigo de ninguna manera, y puede que sea porque tampoco sé C del todo.

Tu mismo admites que no sabes mucho C, así que yo en tu lugar me concentraría en eso en lugar de en nada de DS... ¿Cómo pretendes hacer algo sin conocer la principal herramienta que estás usando?

La solución que te dice Blue es una buena forma, aunque yo ni me molestaría en comprobar si el color es sólido, simplemente usaría una caja con dimensiones aproximadas a las de la imagen, que es lo que se hace, por ejemplo, en los juegos de peleas en 2D (dividir el personaje en cajas que son las que realmente colisionan, solo que en tu caso sería una sola caja), y comprobar colisiones entre 2 cuadrados es algo muy sencillito:
http://www.palib.info/wiki/doku.php?id= ... ion_theory
4 respuestas