Anuncios Google

Fallo al usar una función para tocar el sprite en NFlib [Solucionado]

Pues estaba practicando unas cosas del tuto de Almamu sobre Nflib cuando fui a probar la función para tocar un sprite, pero al compilar me dio error. Seguramente sea un error tonto de hacerlo deprisa y corriendo, pero no soy capaz de resolverlo -.-.

Este es el código:

/*
-------------------------------------------------
	Includes
-------------------------------------------------
*/
 
// Includes c/c++
#include <stdio.h>
 
// Includes propietarios NDS
#include <nds.h>
 
// Includes librerias propias
#include <nf_lib.h>
 
// Includes SpriteTouched
#include <spritetouched.h>
 
 
 
/*
-------------------------------------------------
	Main() - Bloque general del programa
-------------------------------------------------
*/
 
// Includes c/c++
#include <stdio.h>
 
// Includes propietarios NDS
#include <nds.h>
 
// Includes librerias propias
#include <nf_lib.h>
 
 
 
 
 
/*
-------------------------------------------------
	Main() - Bloque general del programa
-------------------------------------------------
*/
int main(int argc, char **argv) {
 
	NF_Set2D(0, 0);
	NF_Set2D(1, 0);	
	consoleDemoInit();		// Inicializa la consola de texto
	iprintf("\n NitroFS init. Please wait.\n\n");
	iprintf(" Iniciando NitroFS,\n por favor, espere.\n\n");
	swiWaitForVBlank();
 
	NF_SetRootFolder("NITROFS");	// Define la carpeta ROOT para usar NITROFS
 
	NF_Set2D(0, 0);				// Modo 2D_0 en ambas pantallas
	NF_Set2D(1, 0);
 
	NF_InitSpriteBuffers();		// Inicializa los buffers para almacenar fondos
	NF_InitSpriteSys(0);		// Inicializa los fondos Tileados para la pantalla superior
	NF_InitSpriteSys(1);
 
	NF_InitTiledBgBuffers();	// Inicializa los buffers para almacenar fondos
	NF_InitTiledBgSys(0);		// Inicializa los fondos Tileados para la pantalla superior
	NF_InitTiledBgSys(1);		// Iniciliaza los fondos Tileados para la pantalla inferior
 
	NF_LoadTiledBg("bg/bg0", "bg0", 256, 256); 
	NF_LoadTiledBg("bg/fondo", "fondo", 256, 256); 
	NF_CreateTiledBg(0, 3, "bg0"); 
	NF_CreateTiledBg(1, 3, "fondo"); 
 
	NF_LoadSpriteGfx("sprite/sprite1", 0, 16, 16);	// Personaje
	NF_VramSpriteGfx(1, 0, 0, true);	
	NF_LoadSpritePal("sprite/sprite1", 0);
	NF_VramSpritePal(1, 0, 0);
	NF_CreateSprite(1, 0, 0, 0, 20, 30);  
 
	// Bucle (repite para siempre)
	while(1) {
	NF_SpriteOamSet(1);
 
	if(_SpriteTouched(0)){
iprintf("Has tocado el sprite");
}	
 
 
	swiWaitForVBlank();		// Espera al sincronismo vertical
	oamUpdate(&oamMain);
	oamUpdate(&oamSub);
	}
 
	return 0; 
 
}

Y aquí, el código del archivo .h que creé en la carpeta source:

bool _SpriteTouched(u8 n){
	touchPosition sprTouch;
	if((sprTouch.px>=NF_SPRITEOAM[0][n].x) && (sprTouch.py>=NF_SPRITEOAM[0][n].y) && (sprTouch.px<=NF_SPRITEOAM[0][n].x+NF_SPR256VRAM[0][n].width) && (sprTouch.py<=NF_SPRITEOAM[0][n].y+NF_SPR256VRAM[0][n].height)){
		return 1;
	}else{
		return 0;
	}
}

Seguramente, como dije antes, seguramente sea un error tonto por mi parte, pero espero que me podais ayudar si sois tan amables. Gracias por vuestra atención.


EDIT: Hola, hoy estaba haciendo esto con las funciones de textos de las NFlib y al probarlo en mi DS, el bg de la pantalla superior se cargó, pero en la inferior, no se cargó nada, solo dio este error:

"Text layer on screen.
 nError code 114
"

Y el código que usé era este:

/*
-------------------------------------------------
	Includes
-------------------------------------------------
*/
 
// Includes c/c++
#include <stdio.h>
 
// Includes propietarios NDS
#include <nds.h>
 
// Includes librerias propias
#include <nf_lib.h>
 
// Includes SpriteTouched
#include <spritetouched.h>
 
/*
-------------------------------------------------
	Main() - Bloque general del programa
-------------------------------------------------
*/
int main(int argc, char **argv) {
 
	NF_Set2D(0, 0);
	NF_Set2D(1, 0);	
	consoleDemoInit();		// Inicializa la consola de texto
	iprintf("\n NitroFS init. Please wait.\n\n");
	iprintf(" Iniciando NitroFS,\n por favor, espere.\n\n");
	swiWaitForVBlank();
 
	NF_SetRootFolder("NITROFS");	// Define la carpeta ROOT para usar NITROFS
 
	NF_Set2D(0, 0);				// Modo 2D_0 en ambas pantallas
	NF_Set2D(1, 0);
 
	NF_InitSpriteBuffers();		// Inicializa los buffers para almacenar fondos
	NF_InitSpriteSys(0);		// Inicializa los fondos Tileados para la pantalla superior
	NF_InitSpriteSys(1);
 
	NF_InitTiledBgBuffers();	// Inicializa los buffers para almacenar fondos
	NF_InitTiledBgSys(0);		// Inicializa los fondos Tileados para la pantalla superior
	NF_InitTiledBgSys(1);		// Iniciliaza los fondos Tileados para la pantalla inferior
 
	NF_InitTextSys(0);//Inicio el sistema de texto superior
	NF_InitTextSys(1);//Inicio el sistema de texto inferior
 
	NF_LoadTiledBg("bg/bg0", "bg0", 256, 256); 
	NF_LoadTiledBg("bg/fondo", "fondo", 256, 256); 
	NF_CreateTiledBg(0, 3, "bg0"); 
	NF_CreateTiledBg(1, 3, "fondo"); 
 
	NF_LoadSpriteGfx("sprite/sprite1", 0, 16, 16);	// Personaje
	NF_VramSpriteGfx(1, 0, 0, true);	
	NF_LoadSpritePal("sprite/sprite1", 0);
	NF_VramSpritePal(1, 0, 0);
	NF_CreateSprite(1, 0, 0, 0, 20, 30);  
 
	// Bucle (repite para siempre)
	while(1) {
	NF_SpriteOamSet(1);
 
	if(_SpriteTouched(0)){
NF_WriteText(0, 0, 0, 0, "Hola mundo!");
NF_UpdateTextLayers();
}	
 
 
	swiWaitForVBlank();		// Espera al sincronismo vertical
	oamUpdate(&oamMain);
	oamUpdate(&oamSub);
	}
 
	return 0; 
 
}

Espero que me podais volver a ayudar.

Salu2


¿Quieres estar totalmente informado sobre el universo 3DS? Visita Magic3DS.

También puedes estar al tanto de toda la actualidad de 3DS en Twitter: @Magic3DS


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 magicblack2009

Nuevo problema -.-

Tengo un nuevo fallo con otra cosa, haber si me podeis ayudar si sois tan amables:

Estaba haciendo esto con las funciones de textos de las NFlib y al probarlo en mi DS, el bg de la pantalla superior se cargó, pero en la inferior, no se cargó nada, solo dio este error:

 

"Text layer on screen.
 nError code 114
"

Y el código que usé era este:

/*
-------------------------------------------------
	Includes
-------------------------------------------------
*/
 
// Includes c/c++
#include <stdio.h>
 
// Includes propietarios NDS
#include <nds.h>
 
// Includes librerias propias
#include <nf_lib.h>
 
// Includes SpriteTouched
#include <spritetouched.h>
 
/*
-------------------------------------------------
	Main() - Bloque general del programa
-------------------------------------------------
*/
int main(int argc, char **argv) {
 
	NF_Set2D(0, 0);
	NF_Set2D(1, 0);	
	consoleDemoInit();		// Inicializa la consola de texto
	iprintf("\n NitroFS init. Please wait.\n\n");
	iprintf(" Iniciando NitroFS,\n por favor, espere.\n\n");
	swiWaitForVBlank();
 
	NF_SetRootFolder("NITROFS");	// Define la carpeta ROOT para usar NITROFS
 
	NF_Set2D(0, 0);				// Modo 2D_0 en ambas pantallas
	NF_Set2D(1, 0);
 
	NF_InitSpriteBuffers();		// Inicializa los buffers para almacenar fondos
	NF_InitSpriteSys(0);		// Inicializa los fondos Tileados para la pantalla superior
	NF_InitSpriteSys(1);
 
	NF_InitTiledBgBuffers();	// Inicializa los buffers para almacenar fondos
	NF_InitTiledBgSys(0);		// Inicializa los fondos Tileados para la pantalla superior
	NF_InitTiledBgSys(1);		// Iniciliaza los fondos Tileados para la pantalla inferior
 
	NF_InitTextSys(0);//Inicio el sistema de texto superior
	NF_InitTextSys(1);//Inicio el sistema de texto inferior
 
	NF_LoadTiledBg("bg/bg0", "bg0", 256, 256); 
	NF_LoadTiledBg("bg/fondo", "fondo", 256, 256); 
	NF_CreateTiledBg(0, 3, "bg0"); 
	NF_CreateTiledBg(1, 3, "fondo"); 
 
	NF_LoadSpriteGfx("sprite/sprite1", 0, 16, 16);	// Personaje
	NF_VramSpriteGfx(1, 0, 0, true);	
	NF_LoadSpritePal("sprite/sprite1", 0);
	NF_VramSpritePal(1, 0, 0);
	NF_CreateSprite(1, 0, 0, 0, 20, 30);  
 
	// Bucle (repite para siempre)
	while(1) {
	NF_SpriteOamSet(1);
 
	if(_SpriteTouched(0)){
NF_WriteText(0, 0, 0, 0, "Hola mundo!");
NF_UpdateTextLayers();
}	
 
 
	swiWaitForVBlank();		// Espera al sincronismo vertical
	oamUpdate(&oamMain);
	oamUpdate(&oamSub);
	}
 
	return 0; 
 
}

Siento ser tan pesado, seguramente sea un fallo tonto, pero espero que me podais volver a ayudar. Gracias por vuestra atención.

Salu2


¿Quieres estar totalmente informado sobre el universo 3DS? Visita Magic3DS.

También puedes estar al tanto de toda la actualidad de 3DS en Twitter: @Magic3DS

Imagen de kNightFox

NF_WriteText(0, 0, 0, 0,

NF_WriteText(0, 0, 0, 0, "Hola mundo!");
NF_UpdateTextLayers();

Ni has cargado ninguna fuente antes, ni has creado las capas de texto para poder escribir. Repasate el ejemplo de textos de la libreria,


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 Draco el dragon

Te falta cargar

O eso creo, las fuentes.

Mira el ejemplo de texto (no me acuerdo si lo hay xD) de texto, copia la fuente a nitrofiles y cargala.

Si siguen los problemas, avisa, que no veo ningun error mas.

Imagen de magicblack2009

Teneis razón -.-

Me salté eso por completo, sería por la emoción del partido xD.

Gracias a los dos, ahora mismo lo cambio y os comento que tal va.

EDIT: Teniais razón, me faltaba eso para que me funcionase, ahora si que funciona. Muchísimas gracias a los dos.

Salu2


¿Quieres estar totalmente informado sobre el universo 3DS? Visita Magic3DS.

También puedes estar al tanto de toda la actualidad de 3DS en Twitter: @Magic3DS

Imagen de kNightFox

has puesto codigo en un

has puesto codigo en un .H.... ahi madre XD.

Bueno bueno, antes que saque la bola magica, que tal si posteas el error?

 

Un  saludo!


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 magicblack2009

No, yo también la cagué xD

El fallo tuyo, pues estaba ahí, pero no era precisamente eso lo que me daba error al compilar la primera vez xD. Me explico:

  • Los includes; si os fijais bien, los puse dos veces :S.
  • El archivo .h lo puse en la carpeta source en vez de en la carpeta includes -.-'.

Por lo que fue más fallo mío que tuyo xD. De todas formas, gracias por ayudarme, ya está solucionado.

Salu2


¿Quieres estar totalmente informado sobre el universo 3DS? Visita Magic3DS.

También puedes estar al tanto de toda la actualidad de 3DS en Twitter: @Magic3DS

Imagen de magicblack2009

Gracias por solucinarlo :P

Gracias por solucionarme el fallo tan rápido. Pensé que sería fallo mío :P.

Muchísimas gracias.

Salu2

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.