Anuncios Google

sprites cargar, doble problema

no se porque, pero quiero solucionar esto lo antes posible, antes de anda un noticia para magicblack: no lo publiques aun ya hablaremos.

bueno, resulta que tengo este codigo:

//Cargar Sprites
		//Sprites abajo
			ODI_Cargar_Sprites_NitroFs(0,"personaje", 0);
			ODI_Reservar_Espacio_Sprite(0,oamAllocateGfx(&oamMain, SpriteSize_64x64,SpriteColorFormat_256Color),0);
			ODI_Cargar_Sprite(0,0,0,0,0,64,64,59,5,1);	
 
			ODI_Cargar_Sprites_NitroFs(0,"bola",1);
			ODI_Reservar_Espacio_Sprite(0,oamAllocateGfx(&oamMain, SpriteSize_32x32,SpriteColorFormat_256Color),1);
			ODI_Cargar_Sprite(0,1,1,1,1,32,32,5,5,1);
 
		//Sprites arriba
			ODI_Cargar_Sprites_NitroFs(1,"personaje",0);
			ODI_Reservar_Espacio_Sprite(1,oamAllocateGfx(&oamSub, SpriteSize_64x64,SpriteColorFormat_256Color),0);
			ODI_Cargar_Sprite(1,0,0,0,0,64,64,59,5,1);
 
			ODI_Cargar_Sprites_NitroFs(1,"bola",1);
			ODI_Reservar_Espacio_Sprite(1,oamAllocateGfx(&oamSub, SpriteSize_32x32,SpriteColorFormat_256Color),1);
			ODI_Cargar_Sprite(1,1,1,1,1,32,32,5,5,1);

y utilizo esta funcion para cargarlos:

void ODI_Cargar_Sprite(u8 pantalla,int id, int paleta, int slot,int capa,int ancho, int alto,int x,int y, u8 color){
 
	if(ancho==8 && alto==8)tamano[pantalla][slot]=SpriteSize_8x8;
	if(ancho==16 && alto==8)tamano[pantalla][slot]=SpriteSize_16x8;
	if(ancho==8 && alto==16)tamano[pantalla][slot]=SpriteSize_8x16;
	if(ancho==16 && alto==16)tamano[pantalla][slot]=SpriteSize_16x16;
	if(ancho==16 && alto==32)tamano[pantalla][slot]=SpriteSize_16x32;
	if(ancho==32 && alto==16)tamano[pantalla][slot]=SpriteSize_32x16;
	if(ancho==32 && alto==32)tamano[pantalla][slot]=SpriteSize_32x32;
	if(ancho==16 && alto==32)tamano[pantalla][slot]=SpriteSize_16x32;
	if(ancho==8 && alto==32)tamano[pantalla][slot]=SpriteSize_8x32;
	if(ancho==32 && alto==16)tamano[pantalla][slot]=SpriteSize_32x16;
	if(ancho==32 && alto==8)tamano[pantalla][slot]=SpriteSize_32x8;
	if(ancho==32 && alto==64)tamano[pantalla][slot]=SpriteSize_32x64;
	if(ancho==64 && alto==32)tamano[pantalla][slot]=SpriteSize_64x32;
	if(ancho==64 && alto==64)tamano[pantalla][slot]=SpriteSize_64x64;
 
	sprite_id[pantalla][slot]=id;
	sprite_x[pantalla][slot]=x;
	sprite_y[pantalla][slot]=y;
	sprite_pal[pantalla][slot]=paleta;
	sprite_color[pantalla][slot]=color;
	sprite_oculto[pantalla][slot]=false;
	sprite_capa[pantalla][slot]=capa;
	sprite_creado[pantalla][slot]=true;
 
	if(pantalla==1){
		if(color==1){
			memcpy((void*)spritegfx[pantalla][slot],Sprite[pantalla][slot], Sprite_size[pantalla][slot]);
			memcpy((void*)((0x06890000) + (paleta << 9)),Sprite_Pal[pantalla][slot], Sprite_Pal_size[pantalla][slot]);
			oamSet(&oamMain,id,x,y,capa,paleta,tamano[pantalla][slot],SpriteColorFormat_256Color,(void*)spritegfx[pantalla][slot],0,false,false,false,false,false);
		}
		if(color==0){
			memcpy((void*)spritegfx[pantalla][slot],Sprite[pantalla][slot], Sprite_size[pantalla][slot]);
			memcpy((void*)((0x06890000) + (paleta << 9)),Sprite_Pal[pantalla][slot], Sprite_Pal_size[pantalla][slot]);
			oamSet(&oamMain,id,x,y,capa,paleta,tamano[pantalla][slot],SpriteColorFormat_16Color,(void*)spritegfx[pantalla][slot],0,false,false,false,false,false);
		}
	}
	if(pantalla==0){
		if(color==1){
			memcpy((void*)spritegfx[pantalla][slot],Sprite[pantalla][slot], Sprite_size[pantalla][slot]);
			memcpy((void*)((0x068A0000) + (paleta << 9)),Sprite_Pal[pantalla][slot], Sprite_Pal_size[pantalla][slot]);
			oamSet(&oamSub,id,x,y,capa,paleta,tamano[pantalla][slot],SpriteColorFormat_256Color,(void*)spritegfx[pantalla][slot],0,false,false,false,false,false);
		}
		if(color==0){
			memcpy((void*)spritegfx[pantalla][slot],Sprite[pantalla][slot], Sprite_size[pantalla][slot]);
			memcpy((void*)((0x068A0000) + (paleta << 9)),Sprite_Pal[pantalla][slot], Sprite_Pal_size[pantalla][slot]);
			oamSet(&oamSub,id,x,y,capa,paleta,tamano[pantalla][slot],SpriteColorFormat_16Color,(void*)spritegfx[pantalla][slot],0,false,false,false,false,false);
		}
	}
}

esos codigos me cargan dos sprites arriba y dos abajo, pero si solo quiero cargar lso de una pantalla, no va. si comento la carga de lso de arriba quedaria asi:

//Cargar Sprites
		//Sprites abajo
			/*ODI_Cargar_Sprites_NitroFs(0,"personaje", 0);
			ODI_Reservar_Espacio_Sprite(0,oamAllocateGfx(&oamMain, SpriteSize_64x64,SpriteColorFormat_256Color),0);
			ODI_Cargar_Sprite(0,0,0,0,0,64,64,59,5,1);	
 
			ODI_Cargar_Sprites_NitroFs(0,"bola",1);
			ODI_Reservar_Espacio_Sprite(0,oamAllocateGfx(&oamMain, SpriteSize_32x32,SpriteColorFormat_256Color),1);
			ODI_Cargar_Sprite(0,1,1,1,1,32,32,5,5,1);*/
 
		//Sprites arriba
			ODI_Cargar_Sprites_NitroFs(1,"personaje",0);
			ODI_Reservar_Espacio_Sprite(1,oamAllocateGfx(&oamSub, SpriteSize_64x64,SpriteColorFormat_256Color),0);
			ODI_Cargar_Sprite(1,0,0,0,0,64,64,59,5,1);
 
			ODI_Cargar_Sprites_NitroFs(1,"bola",1);
			ODI_Reservar_Espacio_Sprite(1,oamAllocateGfx(&oamSub, SpriteSize_32x32,SpriteColorFormat_256Color),1);
			ODI_Cargar_Sprite(1,1,1,1,1,32,32,5,5,1);

y asi se queda la pantalla en negro, no carga ninguno

ayuda plisss


Be Libre my Friend.


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de kNightFox

Para empezar, en libnds, el

Para empezar, en libnds, el main display es la pantalla superior. Despues falta la parte de codigo donde actualizas el OAM despues del wairforvbl. Mirate que este correcto.


Nuestra web oficial:
http://www.nightfoxandco.com/
 
Siguenos en facebook:
http://www.facebook.com/pages/NightFox-Co/284338634917917
 
Por favor, no useis los MP para preguntas, usar el FORO:
http://www.nightfoxandco.com/forum/
Asi nos ahorramos de contestar lo mismo 20 veces.

 

Imagen de OdnetninI

si, esta todo correcto, fue

si, esta todo correcto, fue un error mio, puse un comentario, gracias knightfox, pro molestarte en contestar

Imagen de OdnetninI

Perdon error mio, aunque lo

Perdon error mio, aunque lo digo si quereis, si os dais cuenta en la pantalla de arriba declare el espac io para la de abajo y biceversa, ya esta no apsa nada, podeis cerrar


Be Libre my Friend.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.