[DS] Os funciona PA_DeleteSprite?

Hola,

Estoy haciendo pruebas con la DS y necesito eliminar sprites de la pantalla.

Ahora mismo tengo unos 30 en movimiento, la cuestión es que cuando quiero eliminar por ej. el sprite nº 4 se me eliminan 2 sprites y ninguno de ellos es el 4.

no se si estoy utilizando mal la función, el código que ejecuto es este:

PA_DeleteSprite(0,4); // pantalla,sprite

Gracias de antemano.
Igual es una chorrada, perooooo ¿el array de sprites empieza por 0 o por 1? a ver si es 0,3 para acceder al 4º sprite...
Eskematico escribió:Igual es una chorrada, perooooo ¿el array de sprites empieza por 0 o por 1? a ver si es 0,3 para acceder al 4º sprite...


he pensado eso, pero igualmente no deberian borrarse dos sprites, se deberia borrar solo uno.

Adeas le digo que me borre el 4 y me borra el 0 [agggtt]
the_goulin escribió:
he pensado eso, pero igualmente no deberian borrarse dos sprites, se deberia borrar solo uno.

Adeas le digo que me borre el 4 y me borra el 0 [agggtt]


¿esas librerias tienen codigo fuente por algun lado?

Por que yo no lo he visto por ningun lado (lo mismo he sido torpe) y a mi, personalmente, no me gusta que mis trabajos dependan de una libreria que puede tener fallos y que no puedo corregir.
Pues no se si tienen fuente, luego hare una prueba más sencilla con sprites y si sucede lo mismo me pasare a la otra libreria (la cruda :P)


----------------------------------------
EDIT:

comprobado... con este codigo pasa lo mismo

alguien ha probado alguna vez esta funcion(PA_DeleteSprite) ?

pongo 4 sprites, elimine el que elimine se borran 2?¿?¿? :?
// Includes
#include <PA9.h>       // Include for PA_Lib
#include "bitmap/all_gfx.c"
#include "bitmap/all_gfx.h"

// Function: main()
int main(int argc, char ** argv)
{
   
   PA_Init();    // Initializes PA_Lib
   PA_InitVBL(); // Initializes a standard VBL
   PA_LoadSpritePal(0,0,(void*)sprite0_Pal);
   PA_CreateSprite(0,0,(void*)nave_Sprite,OBJ_SIZE_16X16,1,0,10,10);      
   PA_CreateSprite(0,1,(void*)nave_Sprite,OBJ_SIZE_16X16,1,0,10,30);      
   PA_CreateSprite(0,2,(void*)nave_Sprite,OBJ_SIZE_16X16,1,0,10,60);      
   PA_CreateSprite(0,3,(void*)nave_Sprite,OBJ_SIZE_16X16,1,0,10,90);      
   
   
   
   //initMalos();
   
   while (1)
   {

      if (Pad.Held.A)
         PA_DeleteSprite(0,3);
      PA_WaitForVBL();
   }
   return 0;
}
tienes la documentación de la api por algun lado? igual no hace lo que piensas esa función
saulotmalo escribió:tienes la documentación de la api por algun lado? igual no hace lo que piensas esa función


No, si hacer no hace lo que el piensa (o quiere hacer) , esa funcion.

A mi me da la impresion de que se trata de un bug de 6 patas [jaja]
Una vez ley en el foro de las pa_lib a Mollusk diciendo que no recomendaba el uso de esa función... Así que si quieres borrar mueve el sprite fuera de la pantalla (x=300 o similar) o simplemente creandote un sprite transparente.
Pues nada, he mirado la documentación y teoricamente si que deberia borrar el sprite, pero yo tambien empiezo a pensar que tiene un bug :(

asi que utilizare la tecnica de sacar el sprite de la pantalla :P


gracias a todos :)
Para la animacion....


suena estupido, pero en versiones tempranas pasaba eso
son sprites sin animación
Yo solo te cuento mi experiencia con eso, porque lo pase bastante mal porque al borrar un sprite se me formaba algo extraño xD
11 respuestas