Os cuento. Estoy haciendo unas pruebas con la función PA_LargeScrollXY() y al cargar un fondo y moverlo quiero establecerle unos márgenes de los cuales no pueda salirse de la pantalla y pueda restablecer el valor de sus coordenadas X e Y. Por ejemplo, en los márgenes arriba e izquierda es muy fácil, ya que el valor de las coordenadas de imagen son 0 y 0:
// que no se salga de los márgenes posibles if (scrollx < 0) scrollx = 0; if (scrolly < 0) scrolly = 0;
donde scrollx y scrolly serían las coordenadas de la imagen.
Y ahora es cuando viene el problema, puesto que para los márgenes derecha y abajo necesito algo que me diga cuán larga y ancha es la imagen, puesto que no es lo mismo si cargo un fondo de 800x600 que uno de 2048x2048. No se si me he explicado bien, pero espero que podáis ayudarme.
Os cuento. Estoy haciendo unas pruebas con la función PA_LargeScrollXY() y al cargar un fondo y moverlo quiero establecerle unos márgenes de los cuales no pueda salirse de la pantalla y pueda restablecer el valor de sus coordenadas X e Y. Por ejemplo, en los márgenes arriba e izquierda es muy fácil, ya que el valor de las coordenadas de imagen son 0 y 0:
// que no se salga de los márgenes posibles if (scrollx < 0) scrollx = 0; if (scrolly < 0) scrolly = 0;
donde scrollx y scrolly serían las coordenadas de la imagen.
Y ahora es cuando viene el problema, puesto que para los márgenes derecha y abajo necesito algo que me diga cuán larga y ancha es la imagen, puesto que no es lo mismo si cargo un fondo de 800x600 que uno de 2048x2048. No se si me he explicado bien, pero espero que podáis ayudarme.
Gracias de antemano
El scroll es un uint8 creo, por tanto no tiene signo y siempre va a ser mayor que 0. Tendrás que buscar otra forma de comprobarlo.
keda
Creador de Sueños
1.212 mensajes desde abr 2003 en mi barco pirata...
Os cuento. Estoy haciendo unas pruebas con la función PA_LargeScrollXY() y al cargar un fondo y moverlo quiero establecerle unos márgenes de los cuales no pueda salirse de la pantalla y pueda restablecer el valor de sus coordenadas X e Y. Por ejemplo, en los márgenes arriba e izquierda es muy fácil, ya que el valor de las coordenadas de imagen son 0 y 0:
// que no se salga de los márgenes posibles if (scrollx < 0) scrollx = 0; if (scrolly < 0) scrolly = 0;
donde scrollx y scrolly serían las coordenadas de la imagen.
Y ahora es cuando viene el problema, puesto que para los márgenes derecha y abajo necesito algo que me diga cuán larga y ancha es la imagen, puesto que no es lo mismo si cargo un fondo de 800x600 que uno de 2048x2048. No se si me he explicado bien, pero espero que podáis ayudarme.
Gracias de antemano
El scroll es un uint8 creo, por tanto no tiene signo y siempre va a ser mayor que 0. Tendrás que buscar otra forma de comprobarlo.
De ese modo si que me lo comprueba, porq tng definidos los scroll como s32 (creo que porque en el ejemplo de PA_Scroll que vi estaba así).
He colgado el .nds a megaupload para que se vea como al intentar subir el fondo al máximo (o ir a la izqueirda) no se pasa de 0 como si lo llevas a la derecha o abajo del todo (los valores de x e y salen en la pantalla de arriba)
ssssO escribió:Estoy suponiendo que estás trabajando con un sprite ya que una bg no la puedes mover ya que tiene el tamaño de la pantalla de la DS
Espero no estar equivocado
Pues lo estás...
Estoy moviendo un bg más grade que la pantalla de la DS con la función PA_LargeScrollXY(), pero gracias de todos modos.
AntonioND, supongo que eso me vendrá estupendo para lo que quería. Mañana lo pruebo y te digo, que acabo de llegar a casa y no tng ganas de ponerme a probar. Gracias ^^
keda escribió:AntonioND, supongo que eso me vendrá estupendo para lo que quería. Mañana lo pruebo y te digo, que acabo de llegar a casa y no tng ganas de ponerme a probar. Gracias ^^
El truco está en mirar las librerías y archivos que te dan. Yo no sabía eso hasta esta tarde. Si buscas, normalmente encuentras que alguien ha hecho ya el trabajo por tí y tú solamente lo tienes que usar.
Ya contarás si te sale.
keda
Creador de Sueños
1.212 mensajes desde abr 2003 en mi barco pirata...
Va estupendo, AntonioND ^^ Muchas gracias!! Ahora a ver si encuentro en algún lado cómo hacer lo de los mapas de colisiones y todo eso, que con lo de la wiki del palib no me entero mucho
ssssO escribió:Estoy suponiendo que estás trabajando con un sprite ya que una bg no la puedes mover ya que tiene el tamaño de la pantalla de la DS
Espero no estar equivocado
Pues lo estás...
Estoy moviendo un bg más grade que la pantalla de la DS con la función PA_LargeScrollXY(), pero gracias de todos modos.
AntonioND, supongo que eso me vendrá estupendo para lo que quería. Mañana lo pruebo y te digo, que acabo de llegar a casa y no tng ganas de ponerme a probar. Gracias ^^
Plata escribió:Mejor que eso no hay. Y usa estructuras y fixed points, consejo de uno que esta creando un zelda entero xD.
Yo para mis juegos uso muuuchos floats , así me van a veces de lentos, que tengo a la DS a tope . Tendría que dejar de ser tan vago y usar fixed points...
keda
Creador de Sueños
1.212 mensajes desde abr 2003 en mi barco pirata...