PDA

Ver la versión completa : Salir de un programa



Anti
31/01/2005, 16:48
Hola, estoy intentando hacer un bucle while que salga solo al pulsar la tecla SELEC o START.

lo hago de esta forma:

while ((GpKeyGet() != (GPC_VK_SELECT) | GpKeyGet() != (GPC_VK_START)))
{
GpTextOut16(NULL,gpDraw,110,80,(char*)"Press START",0xFF);
GpTextOut16(NULL,gpDraw,110,100,(char*)"Or SELECT",0xFF);
}

o de esta otra...

while ((GpKeyGet() != (GPC_VK_SELECT) || GpKeyGet() != (GPC_VK_START)))
{
GpTextOut16(NULL,gpDraw,110,80,(char*)"Press START",0xFF);
GpTextOut16(NULL,gpDraw,110,100,(char*)"Or SELECT",0xFF);
}

Deberia hacer el while mientras la tecla que se pulse sea ninguna o diferente a SELECT o STAR.O eso creo.
El problema es que lo compilo pero luego no sale ni al pulsar select ni start :loco:

¿Alguien puede ayudarme?.
GRACIAS :musico:

Locke
31/01/2005, 16:58
De la segunda manera saldra al pulsar select y start a la vez.

Si pones while ( (...!=SELCT) && (...!=START)) deberia funcionar, a no ser que me este equivocando, claro :)

Suerte

saharoo
31/01/2005, 20:37
El primer while está mal porque un "OR" es con dos "|" es decir "||"

El segundo while también está mal porque la condición de salida es cuando una de las dos (o las dos) sea falsa, y por tanto tiene que ser un "AND" "&&"

Si quieres hacerlo con un "OR" tendrías que hacerlo así:

while ( ! (GpKeyGet() == (GPC_VK_SELECT) || GpKeyGet() == (GPC_VK_START) ) )

Es decir, negar todo el conjugado. Es simple matemática boleana.

De todas formas intenta optimizar un poco, te aconsejo que guardes en una variable el valor devuelto por GpKeyGet() y no llames dos veces a la función...

Croc
31/01/2005, 23:16
Wenas!

Yo lo ke uso es:



while(1){
if ((GpKeyGet() & (GPC_VK_FL | GPC_VK_FR)) == (GPC_VK_FL | GPC_VK_FR)) GpAppExit();
}


En este caso termina la aplicacion cuando se pulsa simultaneamente L+R. Yo creo ke es mas intuitivo asi, comparando las teclas pulsadas con la combinacion o unica tecla ke se desee.

Salu2

Anti
01/02/2005, 00:49
Gracias a todos,
he probado a hacer lo que me comentais en el último post y funciona de maravilla.
También he optimizado como comentais para hacer sólo una llamada a GpKeyGet()

:musico: tanks!