snork3ls
05/01/2011, 20:03
Hola. Estoy haciendo un juego (o algo asi) con SDL y no me aclaro para leer las teclas cuando lo pruebo desde mi ordenador.
He visto que hay un tutorial pero lee el joystick de la consola.
Al principio del proyecto me sale esto:
/* GP2X button mapping */
enum MAP_KEY
{
VK_UP , // 0
VK_UP_LEFT , // 1
VK_LEFT , // 2
VK_DOWN_LEFT , // 3
VK_DOWN , // 4
VK_DOWN_RIGHT , // 5
VK_RIGHT , // 6
VK_UP_RIGHT , // 7
VK_START , // 8
VK_SELECT , // 9
VK_FL , // 10
VK_FR , // 11
VK_FA , // 12
VK_FB , // 13
VK_FX , // 14
VK_FY , // 15
VK_VOL_UP , // 16
VK_VOL_DOWN , // 17
VK_TAT // 18
};
Que es para mapear las teclas ¿?
Para leer el teclado he puesto esto:
while (SDL_PollEvent (&event))
{
switch (event.type)
{
case SDL_KEYDOWN:
/* if press Ctrl + C, terminate program */
if ( (event.key.keysym.sym == SDLK_c) && (event.key.keysym.mod & (KMOD_LCTRL | KMOD_RCTRL)) )
done = 1;
if ( event.jbutton.button == VK_START )
done = 1;
if (event.key.keysym.sym== VK_DOWN)
{
px+=dx*2;
py+=dy*2;
}
break;
case SDL_KEYUP:
...
Ahi es donde compruebo la pulsacion de la tecla, pero lo dicho. Cuando lo pruebo en el ordenador no hace nada al pulsar el cursor abajo. Creo que estan mal mapeadas porque si no pongo la condicion (lo del VK_DOWN) y simplemente meto esas dos lineas si que funciona.
:lamer:
He visto que hay un tutorial pero lee el joystick de la consola.
Al principio del proyecto me sale esto:
/* GP2X button mapping */
enum MAP_KEY
{
VK_UP , // 0
VK_UP_LEFT , // 1
VK_LEFT , // 2
VK_DOWN_LEFT , // 3
VK_DOWN , // 4
VK_DOWN_RIGHT , // 5
VK_RIGHT , // 6
VK_UP_RIGHT , // 7
VK_START , // 8
VK_SELECT , // 9
VK_FL , // 10
VK_FR , // 11
VK_FA , // 12
VK_FB , // 13
VK_FX , // 14
VK_FY , // 15
VK_VOL_UP , // 16
VK_VOL_DOWN , // 17
VK_TAT // 18
};
Que es para mapear las teclas ¿?
Para leer el teclado he puesto esto:
while (SDL_PollEvent (&event))
{
switch (event.type)
{
case SDL_KEYDOWN:
/* if press Ctrl + C, terminate program */
if ( (event.key.keysym.sym == SDLK_c) && (event.key.keysym.mod & (KMOD_LCTRL | KMOD_RCTRL)) )
done = 1;
if ( event.jbutton.button == VK_START )
done = 1;
if (event.key.keysym.sym== VK_DOWN)
{
px+=dx*2;
py+=dy*2;
}
break;
case SDL_KEYUP:
...
Ahi es donde compruebo la pulsacion de la tecla, pero lo dicho. Cuando lo pruebo en el ordenador no hace nada al pulsar el cursor abajo. Creo que estan mal mapeadas porque si no pongo la condicion (lo del VK_DOWN) y simplemente meto esas dos lineas si que funciona.
:lamer: