Anuncios Google

Duda C

Hola, tengo una duda en Oslib, pero posiblemente solucionable para aquellos de sepan manejar C/C++

Es lo siguiente:

CONDICIONAL (Si pulso X entre esas coordenadas hara lo que este en Prueba();

if ((osl_keys->held.cross) && (cursor->x >= 27) && (cursor->x <= 111) && (cursor->y >= 12) && (cursor->y <= 88))
  {
  Prueba();
  }

PRUEBA()

void Prueba()
{
oslClearScreen(0x000000);
pagina = oslLoadImageFile("img/Fondo.png", OSL_IN_RAM, OSL_PF_8888);
oslDrawImage(pagina);
oslDrawImage(barra);
if ((cursor->x >= 4) && (cursor->x <= 36) && (cursor->y >= 3) && (cursor->y <= 18))
	{
	oslDrawImageXY(sombra1, 4, 3); 
	}	
 
if ((cursor->x >= 133) && (cursor->x <= 204) && (cursor->y >= 3) && (cursor->y <= 18))
	{
	oslDrawImageXY(sombra3, 133, 3); 
	}
 
if ((cursor->x >= 54) && (cursor->x <= 114) && (cursor->y >= 3) && (cursor->y <= 18))
	{
	oslDrawImageXY(sombra2, 54, 3); 
	}
 
if ((osl_keys->held.cross) && (cursor->x >= 4) && (cursor->x <= 36) && (cursor->y >= 3) && (cursor->y <= 18))
	{
	main();
	}
}

 

No se si estoy cegato o algo y no veo el fallo pero cuando pulso X entre las coordenadas puestas en el Condicional, parpadea el LED de carga en MS pero no pasa nada.

PD: He probado también con oslCls(); y sin limpiar pantalla también.


Sígueme en Twitter: @Aitor_db


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 AitorDB

MAIN.C

Perdonen el desornen, pero esque al ordenarlo me empezaba a dar fallos.

Cuando le pongo un while o un if (bmenu=0) ya no me carga nada.

//Importamos las librerias
#include <oslib/oslib.h>
 
PSP_MODULE_INFO("PMC", 0, 1, 1);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
 
//Declaramos los punteros de nuestras imagenes
OSL_IMAGE *menu, *barra, *cursor, *sombra, *sombra1, *sombra2, *sombra3, *sombra, *pagina, *creditos;
 
OSL_SOUND *musica, *sonido, *hoja;
 
int main();
int bmenu = 0;
 
//Funciones
//Barra
void Barra()
{
oslDrawImage(barra);
	if ((cursor->x >= 4) && (cursor->x <= 36) && (cursor->y >= 3) && (cursor->y <= 18))
	{
	oslDrawImageXY(sombra1, 4, 3); 
	}	
 
	if ((cursor->x >= 133) && (cursor->x <= 204) && (cursor->y >= 3) && (cursor->y <= 18))
	{
	oslDrawImageXY(sombra3, 133, 3); 
	}
 
	if ((cursor->x >= 54) && (cursor->x <= 114) && (cursor->y >= 3) && (cursor->y <= 18))
	{
	oslDrawImageXY(sombra2, 54, 3); 
	}
 
	if ((osl_keys->held.cross) && (cursor->x >= 4) && (cursor->x <= 36) && (cursor->y >= 3) && (cursor->y <= 18))
	{
	main();
	}
}
 
//Paginas 
void Prueba()
{
bmenu = 1;
oslClearScreen(0x000000);
pagina = oslLoadImageFile("img/Fondo.png", OSL_IN_RAM, OSL_PF_8888);
oslDrawImage(pagina);
Barra();
oslDrawImage(cursor);
}
 
 
//Funcion botones y cursor
void Botones()
{
	//Leemos los botones
	oslReadKeys();
 
	//Sonidos
	//Sonido de X
	if (osl_keys->pressed.cross)
	{
	oslPlaySound(sonido, 1);
	}
 
	//Sonido de L y R
	if (osl_keys->pressed.L) 
	{
	oslPlaySound(hoja, 1);
	}	
	if (osl_keys->pressed.R)
	{
	oslPlaySound(hoja, 1);
	}
 
	//Movimiento del cursor
	//Pad digital
	if(osl_keys->held.up)
	{
	cursor->y -= 4;
	}
 
	if(osl_keys->held.down)
	{
	cursor->y += 4;
	}
 
	if(osl_keys->held.right)
	{
	cursor->x += 4;
	}
 
	if(osl_keys->held.left)
	{
	cursor->x -= 4;
	}
}
 
 
int main()
{
    //Con esta linea la libreria ya se encarga de todos los callbacks
    oslInit(0);
 
	//OSL_PF_8888 para una pantalla de 32 bits o OSL_PF_5650 para 16
	//0 para buffer simple, 1 para buffer doble
    oslInitGfx(OSL_PF_8888, 1);//Si no ponemos doble buffer pasaran cosas raras como que el fondo se sobrepondra al cursor en algunos tramos
 
	//Cargamos las imagenes y sonidos en memoria
	menu = oslLoadImageFile("img/Menu.png", OSL_IN_RAM, OSL_PF_8888);
	cursor = oslLoadImageFile("img/cursor.png", OSL_IN_RAM, OSL_PF_8888);
	musica = oslLoadSoundFile("snd/musica.wav", OSL_FMT_STREAM);
	sonido = oslLoadSoundFile("snd/sonido.wav", OSL_FMT_NONE);
	hoja = oslLoadSoundFile("snd/hoja.wav", OSL_FMT_NONE);
	sombra = oslLoadImageFile("img/sombra.png", OSL_IN_RAM, OSL_PF_8888);
	barra = oslLoadImageFile("img/Barra.png", OSL_IN_RAM, OSL_PF_8888);
	sombra1 = oslLoadImageFile("img/Sombra1.png", OSL_IN_VRAM, OSL_PF_8888);
	sombra2 = oslLoadImageFile("img/Sombra2.png", OSL_IN_VRAM, OSL_PF_8888);
	sombra3 = oslLoadImageFile("img/Sombra3.png", OSL_IN_VRAM, OSL_PF_8888);
 
 
		//Coordenadas donde aparecera el cursor
		cursor->x = 240;
		cursor->y = 136;
 
 
 
	//While principal
		while (!osl_quit)
	{
		//Permite dibujar en pantalla
		oslStartDrawing();
 
		//Llamamos a la funcion para leer los botones
		Botones();
 
		//Ahora detectaremos si se sale de la pantalla
		//Hay que tener en cuenta el tamaño en pix del cursor (en mi caso 15x22)
		if (cursor->x < 0)
			cursor->x = 0;
 
		if (cursor->y < 0)
			cursor->y = 0;
 
		if (cursor->x > 460)
			cursor->x = 460;
 
		if (cursor->y > 252)
			cursor->y = 252;
		bmenu = 0;
		//Menu
 
		//Dibujamos las imagenes en la pantalla
		oslDrawImage(menu);
 
		//Funciones del menu
		//1ª Columna
		if ((osl_keys->pressed.cross) && (cursor->x >= 27) && (cursor->x <= 111) && (cursor->y >= 12) && (cursor->y <= 88))
		{
		Prueba();
		bmenu = 1;
		}	
		if ((osl_keys->held.cross) && (cursor->x >= 142) && (cursor->x <= 226) && (cursor->y >= 12) && (cursor->y <= 88))
		{
		oslQuit();
		bmenu = 1;
		}
		if ((osl_keys->held.cross) && (cursor->x >= 256) && (cursor->x <= 340) && (cursor->y >= 12) && (cursor->y <= 88))
		{
		oslQuit();
		bmenu = 1;
		}
		if ((osl_keys->held.cross) && (cursor->x >= 368) && (cursor->x <= 452) && (cursor->y >= 12) && (cursor->y <= 88))
		{
		oslQuit();
		bmenu = 1;
		}
 
 
		//2ª Columna
		if ((osl_keys->held.cross) && (cursor->x >= 27) && (cursor->x <= 111) && (cursor->y >= 101) && (cursor->y <= 177))
		{
		oslQuit();
		bmenu = 1;
		}	
		if ((osl_keys->held.cross) && (cursor->x >= 142) && (cursor->x <= 226) && (cursor->y >= 101) && (cursor->y <= 177))
		{
		oslQuit();
		bmenu = 1;
		}
		if ((osl_keys->held.cross) && (cursor->x >= 256) && (cursor->x <= 340) && (cursor->y >= 101) && (cursor->y <= 177))
		{
		oslQuit(); 
		bmenu = 1;
		}
		if ((osl_keys->held.cross) && (cursor->x >= 368) && (cursor->x <= 452) && (cursor->y >= 101) && (cursor->y <= 177))
		{
		oslQuit(); 
		bmenu = 1;
		}	
 
 
		//3ª Columna
		if ((osl_keys->held.cross) && (cursor->x >= 142) && (cursor->x <= 226) && (cursor->y >= 191) && (cursor->y <= 267))
		{
		oslQuit();  
		bmenu = 1;
		}	
		if ((osl_keys->held.cross) && (cursor->x >= 256) && (cursor->x <= 340) && (cursor->y >= 191) && (cursor->y <= 267))
		{
		oslQuit(); 
		bmenu = 1;
		}
 
		//Sombras
		//1ª Columna
		if ((cursor->x >= 27) && (cursor->x <= 111) && (cursor->y >= 12) && (cursor->y <= 88))
		{
		oslDrawImageXY(sombra, 27, 12); 
		}	
		if ((cursor->x >= 142) && (cursor->x <= 226) && (cursor->y >= 12) && (cursor->y <= 88))
		{
		oslDrawImageXY(sombra, 142, 12); 
		}
		if ((cursor->x >= 256) && (cursor->x <= 340) && (cursor->y >= 12) && (cursor->y <= 88))
		{
		oslDrawImageXY(sombra, 256, 12); 
		}
		if ((cursor->x >= 368) && (cursor->x <= 452) && (cursor->y >= 12) && (cursor->y <= 88))
		{
		oslDrawImageXY(sombra, 368, 12); 
		}
 
 
		//2ª Columna
		if ((cursor->x >= 27) && (cursor->x <= 111) && (cursor->y >= 101) && (cursor->y <= 177))
		{
		oslDrawImageXY(sombra, 27, 101); 
		}	
		if ((cursor->x >= 142) && (cursor->x <= 226) && (cursor->y >= 101) && (cursor->y <= 177))
		{
		oslDrawImageXY(sombra, 142, 101); 
		}
		if ((cursor->x >= 256) && (cursor->x <= 340) && (cursor->y >= 101) && (cursor->y <= 177))
		{
		oslDrawImageXY(sombra, 256, 101); 
		}
		if ((cursor->x >= 368) && (cursor->x <= 452) && (cursor->y >= 101) && (cursor->y <= 177))
		{
		oslDrawImageXY(sombra, 368, 101); 
		}
 
 
		//3ª Columna
		if ((cursor->x >= 142) && (cursor->x <= 226) && (cursor->y >= 191) && (cursor->y <= 267))
		{
		oslDrawImageXY(sombra, 142, 191); 
		}	
		if ((cursor->x >= 256) && (cursor->x <= 340) && (cursor->y >= 191) && (cursor->y <= 267))
		{
		oslDrawImageXY(sombra, 256, 191); 
		}
 
 
		oslDrawImage(cursor);
 
 
		//Cerramos el modo dibujar
		oslEndDrawing();
		//Y sincronizamos pantalla
		oslSyncFrame();		
	}
 
 
    //Finaliza la parte grafica
    oslEndGfx();
	//Sale directamente al menu de la psp
    oslQuit();
    return 0;
}


Sígueme en Twitter: @Aitor_db

Imagen de sting18

Tenia rato que no no veia

Tenia rato que no no veia tanto code en tan pokitas acciones, yo no uso oslib pero veo que tu problema son con las pulsaciones y al mover el cursor y mira esi yo pongo un cursor que utilisa tanto el analogo como el digital.

void MoverPuntero(void)
{
sceCtrlReadBufferPositive(&pad, 1);
    if(((pad.Buttons & PSP_CTRL_DOWN) ||(pad.Ly == 255)) && (y < 250))   {y = y+4;}
	if(((pad.Buttons & PSP_CTRL_UP) ||(pad.Ly == 0)) && (y > 0))         {y = y-4;}
	if(((pad.Buttons & PSP_CTRL_LEFT) ||(pad.Lx == 0)) && (x > 0))       {x = x-4;}
	if(((pad.Buttons & PSP_CTRL_RIGHT) ||(pad.Lx == 255)) && (x < 460))  {x = x+4;} 	
}

Que que libreria uso? pues la que viene con el pspsdk esta.

http://psp.jim.sh/pspsdk-doc/group__Ctrl.html

si te fijas teienes que activar el analogo primero.

    sceCtrlSetSamplingCycle(0);
   sceCtrlSetSamplingMode(PSP_CTRL_MODE_ANALOG);

y creo que ya sabes como agregar la libreria incluso hay tutos aqui que hice.

#include <psprtc.h>

espero y despues de esto ya no tengas dudas saludos y suerte con el team ;).


Imagen de AitorDB

By Aitor

Gracias, pero el analogico lo voy a poner aparte en la selección de opciones, para que lo active quien quiera, y lo puedo hacer con OSLib.

Tendré que esperar a que se pase por aqui Klozz, que por lo que se es uno de los pocos que sabe OSLib.

 

PD: El problema lo tengo ahora cuando entro a Prueba(); desde el menu, entra, pero vuelve a salir automaticamente cuando dejo de pulsar X. He probado con IF, WHILE y nada :(


Sígueme en Twitter: @Aitor_db

Imagen de klozz

Pues Prueba a

Pues Prueba a usar

 

 

Do{
 
}while();

Asi no realizara la funcion mientras no se cumpla lo del while y esa funcion se cumpliria al terminar de ejecutar la opcion que has añadido.


TEAM MEX Homebrew y desarrollo PSP

Metal TrooperV.Pre-Alpha (15%)Lua , 10% C .

Ubunshell VProof. (45%)C

RPG Magues (35%)Lua , 5% C


Android development for Xperia X8 ^^ mis roms en XDA-Developers ya que en Scenebeta no las publican xD

Xperience  | MIUI Pikachu | Semc debrand engine | Froyexp | Xperience walkman mod | Android 4.0.4 CN9 Crema de nieve

-- KLOZZ

Imagen de sting18

pues pon 2 while y cierra el

pues pon 2 while y cierra el primero con break.

Deja le digo a klozz que se pase por aqui.

Imagen de AitorDB

By Aitor

¿Debería quedar algo así?

//Importamos las librerias
#include <oslib/oslib.h>
 
PSP_MODULE_INFO("PMC", 0, 1, 1);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
 
//Declaramos los punteros de nuestras imagenes
OSL_IMAGE *menu, *barra, *cursor, *sombra, *sombra1, *sombra2, *sombra3, *sombra, *pagina, *creditos;
 
OSL_SOUND *musica, *sonido, *hoja;
 
int main();
int bmenu = 0;
 
//Funciones
//Barra
void Barra()
{
oslDrawImage(barra);
	if ((cursor->x >= 4) && (cursor->x <= 36) && (cursor->y >= 3) && (cursor->y <= 18))
	{
	oslDrawImageXY(sombra1, 4, 3); 
	}	
 
	if ((cursor->x >= 133) && (cursor->x <= 204) && (cursor->y >= 3) && (cursor->y <= 18))
	{
	oslDrawImageXY(sombra3, 133, 3); 
	}
 
	if ((cursor->x >= 54) && (cursor->x <= 114) && (cursor->y >= 3) && (cursor->y <= 18))
	{
	oslDrawImageXY(sombra2, 54, 3); 
	}
 
	if ((osl_keys->held.cross) && (cursor->x >= 4) && (cursor->x <= 36) && (cursor->y >= 3) && (cursor->y <= 18))
	{
	//Ya he cambiado esto
        bmenu = 0;
	}
}
 
//Paginas 
void Prueba()
{
//Lo he `puesto en un IF también
if (bmenu == 1)
{
oslClearScreen(0x000000);
pagina = oslLoadImageFile("img/Fondo.png", OSL_IN_RAM, OSL_PF_8888);
oslDrawImage(pagina);
Barra();
oslDrawImage(cursor);
}
}
 
 
//Funcion botones y cursor
void Botones()
{
	//Leemos los botones
	oslReadKeys();
 
	//Sonidos
	//Sonido de X
	if (osl_keys->pressed.cross)
	{
	oslPlaySound(sonido, 1);
	}
 
	//Sonido de L y R
	if (osl_keys->pressed.L) 
	{
	oslPlaySound(hoja, 1);
	}	
	if (osl_keys->pressed.R)
	{
	oslPlaySound(hoja, 1);
	}
 
	//Movimiento del cursor
	//Pad digital
	if(osl_keys->held.up)
	{
	cursor->y -= 4;
	}
 
	if(osl_keys->held.down)
	{
	cursor->y += 4;
	}
 
	if(osl_keys->held.right)
	{
	cursor->x += 4;
	}
 
	if(osl_keys->held.left)
	{
	cursor->x -= 4;
	}
}
 
 
int main()
{
    //Con esta linea la libreria ya se encarga de todos los callbacks
    oslInit(0);
 
	//OSL_PF_8888 para una pantalla de 32 bits o OSL_PF_5650 para 16
	//0 para buffer simple, 1 para buffer doble
    oslInitGfx(OSL_PF_8888, 1);//Si no ponemos doble buffer pasaran cosas raras como que el fondo se sobrepondra al cursor en algunos tramos
 
	//Cargamos las imagenes y sonidos en memoria
	menu = oslLoadImageFile("img/Menu.png", OSL_IN_RAM, OSL_PF_8888);
	cursor = oslLoadImageFile("img/cursor.png", OSL_IN_RAM, OSL_PF_8888);
	musica = oslLoadSoundFile("snd/musica.wav", OSL_FMT_STREAM);
	sonido = oslLoadSoundFile("snd/sonido.wav", OSL_FMT_NONE);
	hoja = oslLoadSoundFile("snd/hoja.wav", OSL_FMT_NONE);
	sombra = oslLoadImageFile("img/sombra.png", OSL_IN_RAM, OSL_PF_8888);
	barra = oslLoadImageFile("img/Barra.png", OSL_IN_RAM, OSL_PF_8888);
	sombra1 = oslLoadImageFile("img/Sombra1.png", OSL_IN_VRAM, OSL_PF_8888);
	sombra2 = oslLoadImageFile("img/Sombra2.png", OSL_IN_VRAM, OSL_PF_8888);
	sombra3 = oslLoadImageFile("img/Sombra3.png", OSL_IN_VRAM, OSL_PF_8888);
 
 
		//Coordenadas donde aparecera el cursor
		cursor->x = 240;
		cursor->y = 136;
 
 
 
	//While principal
		while (!osl_quit)
	{
		//Permite dibujar en pantalla
		oslStartDrawing();
 
		//Llamamos a la funcion para leer los botones
		Botones();
 
		//Ahora detectaremos si se sale de la pantalla
		//Hay que tener en cuenta el tamaño en pix del cursor (en mi caso 15x22)
		if (cursor->x < 0)
			cursor->x = 0;
 
		if (cursor->y < 0)
			cursor->y = 0;
 
		if (cursor->x > 460)
			cursor->x = 460;
 
		if (cursor->y > 252)
			cursor->y = 252;
		bmenu = 0;
		//Menu
 
                while (bmenu == 0)
               {
		//Dibujamos las imagenes en la pantalla
		oslDrawImage(menu);
 
		//Funciones del menu
		//1ª Columna
		if ((osl_keys->pressed.cross) && (cursor->x >= 27) && (cursor->x <= 111) && (cursor->y >= 12) && (cursor->y <= 88))
		{
		Prueba();
		bmenu = 1;
		}	
		if ((osl_keys->held.cross) && (cursor->x >= 142) && (cursor->x <= 226) && (cursor->y >= 12) && (cursor->y <= 88))
		{
		oslQuit();
		bmenu = 1;
		}
		if ((osl_keys->held.cross) && (cursor->x >= 256) && (cursor->x <= 340) && (cursor->y >= 12) && (cursor->y <= 88))
		{
		oslQuit();
		bmenu = 1;
		}
		if ((osl_keys->held.cross) && (cursor->x >= 368) && (cursor->x <= 452) && (cursor->y >= 12) && (cursor->y <= 88))
		{
		oslQuit();
		bmenu = 1;
		}
 
 
		//2ª Columna
		if ((osl_keys->held.cross) && (cursor->x >= 27) && (cursor->x <= 111) && (cursor->y >= 101) && (cursor->y <= 177))
		{
		oslQuit();
		bmenu = 1;
		}	
		if ((osl_keys->held.cross) && (cursor->x >= 142) && (cursor->x <= 226) && (cursor->y >= 101) && (cursor->y <= 177))
		{
		oslQuit();
		bmenu = 1;
		}
		if ((osl_keys->held.cross) && (cursor->x >= 256) && (cursor->x <= 340) && (cursor->y >= 101) && (cursor->y <= 177))
		{
		oslQuit(); 
		bmenu = 1;
		}
		if ((osl_keys->held.cross) && (cursor->x >= 368) && (cursor->x <= 452) && (cursor->y >= 101) && (cursor->y <= 177))
		{
		oslQuit(); 
		bmenu = 1;
		}	
 
 
		//3ª Columna
		if ((osl_keys->held.cross) && (cursor->x >= 142) && (cursor->x <= 226) && (cursor->y >= 191) && (cursor->y <= 267))
		{
		oslQuit();  
		bmenu = 1;
		}	
		if ((osl_keys->held.cross) && (cursor->x >= 256) && (cursor->x <= 340) && (cursor->y >= 191) && (cursor->y <= 267))
		{
		oslQuit(); 
		bmenu = 1;
		}
 
		//Sombras
		//1ª Columna
		if ((cursor->x >= 27) && (cursor->x <= 111) && (cursor->y >= 12) && (cursor->y <= 88))
		{
		oslDrawImageXY(sombra, 27, 12); 
		}	
		if ((cursor->x >= 142) && (cursor->x <= 226) && (cursor->y >= 12) && (cursor->y <= 88))
		{
		oslDrawImageXY(sombra, 142, 12); 
		}
		if ((cursor->x >= 256) && (cursor->x <= 340) && (cursor->y >= 12) && (cursor->y <= 88))
		{
		oslDrawImageXY(sombra, 256, 12); 
		}
		if ((cursor->x >= 368) && (cursor->x <= 452) && (cursor->y >= 12) && (cursor->y <= 88))
		{
		oslDrawImageXY(sombra, 368, 12); 
		}
 
 
		//2ª Columna
		if ((cursor->x >= 27) && (cursor->x <= 111) && (cursor->y >= 101) && (cursor->y <= 177))
		{
		oslDrawImageXY(sombra, 27, 101); 
		}	
		if ((cursor->x >= 142) && (cursor->x <= 226) && (cursor->y >= 101) && (cursor->y <= 177))
		{
		oslDrawImageXY(sombra, 142, 101); 
		}
		if ((cursor->x >= 256) && (cursor->x <= 340) && (cursor->y >= 101) && (cursor->y <= 177))
		{
		oslDrawImageXY(sombra, 256, 101); 
		}
		if ((cursor->x >= 368) && (cursor->x <= 452) && (cursor->y >= 101) && (cursor->y <= 177))
		{
		oslDrawImageXY(sombra, 368, 101); 
		}
 
 
		//3ª Columna
		if ((cursor->x >= 142) && (cursor->x <= 226) && (cursor->y >= 191) && (cursor->y <= 267))
		{
		oslDrawImageXY(sombra, 142, 191); 
		}	
		if ((cursor->x >= 256) && (cursor->x <= 340) && (cursor->y >= 191) && (cursor->y <= 267))
		{
		oslDrawImageXY(sombra, 256, 191); 
		}
 
 
		oslDrawImage(cursor);
                //¿Esto dices?
                break;
                }
 
		//Cerramos el modo dibujar
		oslEndDrawing();
		//Y sincronizamos pantalla
		oslSyncFrame();		
	}
 
 
    //Finaliza la parte grafica
    oslEndGfx();
	//Sale directamente al menu de la psp
    oslQuit();
    return 0;
}

 

EDITO: El do ¿cómo y donde iría?


Sígueme en Twitter: @Aitor_db

Imagen de klozz

uhmm ejemplo if

uhmm ejemplo

if ((osl_keys->pressed.cross) && (cursor->x >= 27) && (cursor->x <= 111) && (cursor->y >= 12) && (cursor->y <= 88))
		{
int contador = 1;
contador = contador + 1;
}
 
 
do {
 
 
//toda la funcion a realizar al presionar 1
}while(contador==2);

Saludos.


TEAM MEX Homebrew y desarrollo PSP

Metal TrooperV.Pre-Alpha (15%)Lua , 10% C .

Ubunshell VProof. (45%)C

RPG Magues (35%)Lua , 5% C


Android development for Xperia X8 ^^ mis roms en XDA-Developers ya que en Scenebeta no las publican xD

Xperience  | MIUI Pikachu | Semc debrand engine | Froyexp | Xperience walkman mod | Android 4.0.4 CN9 Crema de nieve

-- KLOZZ

Imagen de klozz

No me deja editar xD donde

No me deja editar xD donde dice funcion a realizar al presionar 1 es X

Imagen de sting18

Lo mejor seria poner los

Lo mejor seria poner los movimientos de el cursor incluso la imagen en un void y usarlo en cada while(1) que tengas para mejor control , y usa debug como te dicen mas abajo asi sabras en donde esta tu error exactamente.


Imagen de joserc87

Depurar.

Lo más sencillo sería que añadieses salidas (exit) a diferentes trozos, para saber si llega a entrar. Por ejemplo, añadirlo al principio del Prueba para ver si entra realmente. Sin más código no se qué decirte...

Por cierto, no se porqué llamas al main main(); en el último if, pero eso es muy peligroso por el tema de la recursión infinita y tal. Bajo ningún concepto deberías hacer eso siempre que lo puedas evitar. Y creeme, SIEMPRE se puede evitar usando funciones.

Saludos


Be pointer my friend...

Dennis Ritchie. Padre de C y cocreador de UNIX.

R.I.P.

 

Imagen de AitorDB

By Aitor

Lo del main(); es para que salga de la historia y "reinicie" el programa. SI hay algo en el SDK o con OSlib dimelo please.

Imagen de klozz

Uhmmm estas seguro que el

Uhmmm estas seguro que el cursor se encuentra sobre esas coordenadas? tambien debes revizar que la imagen no este dañada igual si pones el main completo podria ayudarte mejor.


TEAM MEX Homebrew y desarrollo PSP

Metal TrooperV.Pre-Alpha (15%)Lua , 10% C .

Ubunshell VProof. (45%)C

RPG Magues (35%)Lua , 5% C


Android development for Xperia X8 ^^ mis roms en XDA-Developers ya que en Scenebeta no las publican xD

Xperience  | MIUI Pikachu | Semc debrand engine | Froyexp | Xperience walkman mod | Android 4.0.4 CN9 Crema de nieve

-- KLOZZ

Imagen de AitorDB

By Aitor

Lo de las coordenadas estoy seguro, porque por ejemplo pongo otra función como osl_exit(); y sirve.

De todas formas, no se porque con Oslib en cuanto hago muchas funciones fuera del main empieza a darme fallos.

 

PD: EN un momento te paso el code por MP.


Sígueme en Twitter: @Aitor_db

Imagen de barney77

No estoy muy seguro, pero

No estoy muy seguro, pero creo que es porque los condicionales no están en un loop y así no puede comprobar a cada pasada la condición, intenta metiendo tus condicionales en un loop infinito.

Imagen de AitorDB

By Aitor

OK, gracias, pero ya esta. Esta noche subo el main entero.

Edito: En realidad la parte de la condicional deberia ir en un while para que solo pasara si esta en el menu.


Sígueme en Twitter: @Aitor_db

Imagen de barney77

Esque necesitas dos whiles,

Esque necesitas dos whiles, uno que compruebe la condición de que si presionas X y estas en esas coordenadas ejecute prueba(), y el otro seria uno solo que lleve todas las condiciones de prueba().

Siento no poder dejar el code, estoy desde el psp.

Imagen de AitorDB

By Aitor

Pero para eso no hace falta un while, con if valdría.

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.