PDA

Ver la versión completa : problema con captura de teclas



Ozius
18/04/2005, 01:15
hola a todos

me estoy volviendo loco intentado capturar las teclas que estan pulsadas, aqui esta la funcion que tengo:


void player_agachado(OBJp objp)
{ int Keys;

Keys = GpKeyGet();

if (Keys & GPC_VK_DOWN)
{
if(Keys & GPC_VK_RIGHT)
{
if(objp->direction==LEFT)
objp->direction==RIGHT;
}
if(Keys & GPC_VK_LEFT)
{
if(objp->direction==RIGHT)
objp->direction==LEFT;
}
}
else if (Keys == GPC_VK_NONE)
{
objp->frame=0;
objp->xspeed=0;
objp->action = player_parado;
objp->sprite = run[objp->frame];
}
}

el problema es que nunca entra al primer if aunque tenga pulsado el joystick hacia abajo. he puesto un punto de interrupcion despues del GpKeyGet para ver que valor tenia la variable Keys y es igual a 2 al pulsar hacia abajo por lo que deberia entrar al if pero si lo ejecuto paso por paso con el visual studio se ve que salta al else.
he probado incluso a poner if (Keys == 2) y tampoco entra al if. me esta volviendo loco la verdad porque he creado un programa que solo escriba en pantalla que teclas estan pulsadas usando la misma estructura de los if que he puesto aqui y anda perfectamente pero en el juego como he dicho nunca entra al if cuando deberia.
a ver si a alguno se le ocurre por que puede ser porque no se que mas probar, no es normal que usando el mismo metodo me ande en un sitio y en el otro no

agur

oankali
18/04/2005, 10:03
He probado tu código quitando lo que sobraba y a mi me funciona.
Solo veo un error: cuando asignas RIGHT o LEFT a objp->direction usas == en lugar de =
A lo mejor ese es tu problema.

mortimor
18/04/2005, 11:06
Es lo que tiene el cortar y pegar :D:D:D

Ozius
18/04/2005, 15:09
jode pues si que ando tonto, ayer a la noche venga a cambiar la forma de mirar el Keys y ni me habia fijado que hacia mal la asignación :muerto:
gracias por arreglarme la chorrada ;)