snork3ls
10/06/2011, 22:47
Hola, ya se que pregunte algo parecido pero es que: DEFINITIVAMENTE NO ME ACLARO!!!
A ver. Estoy terminando un programa (como podeis ver en mi firma) hecho con SDL. Esta todo hecho menos la parte que tiene que leer el joystick y las teclas de la consola (no puedo ni salir del programa :miedo:)
Tenia ya escrito este codigo pero se me olvido grabarlo antes de mi ultimo format.
En fin. A lo que vamos. Puedo leer el raton (pantalla) pero no las teclas. He hecho esto:
Primero meto el enum con los codigos de tecla
enum
{
BTN_A = 0, // A / 1
BTN_X = 1, // X / 2
BTN_B = 2, // B / 3
BTN_Y = 3, // Y / 4
BTN_L = 4, // L / 5, L1
BTN_R = 5, // R / 6, L2
BTN_HOME = 6, // Home / 7, R1
BTN_HOLD = 7, // Hold / 8, R2
BTN_HELP1 = 8, // Help I / Select
BTN_HELP2 = 9, // Help II / Start
BTN_TACT = 10, // Tact / L Thumb Stick
BTN_UP = 11,
BTN_DOWN = 12,
BTN_LEFT = 13,
BTN_RIGHT = 14,
};
Ahora en el main hago esto para leer las entradas de la consola:
done = 0;
while (!done)
{
SDL_Event event;
/* Check for events */
while (SDL_PollEvent (&event))
{
switch (event.type)
{
case SDL_MOUSEMOTION:
//hacer cosas...
break;
//ahora lo mismo con el mousebutton...
//ahora la parte del joystick
case SDL_JOYBUTTONDOWN:
switch(event.jbutton.button){
case BTN_HOME:done=1;break;
case BTN_L:if (modo>0) {modo--;}break;
case BTN_R:if (modo<4) {modo++;}break;
case BTN_A:if (preset_act>0) {preset_act--;cargapreset();} break;
case BTN_B:if (preset_act<max_presets) {preset_act++;cargapreset();}break;
case BTN_LEFT:if (preset_act>0) {preset_act--;cargapreset();} break;
case BTN_RIGHT:if (preset_act<max_presets) {preset_act++;cargapreset();}break;
}
break;
//aqui pongo lo mismo pero con las teclas del ordenador para hacer pruebas....
Antes me funcionaba bien asi pero ya no. Es posible que me haya rallado con algun break o algun } (creo que no).
Si no. Podria algun alma caritativa pasarme el codigo para leer estos eventos? Es que si no no puedo hacer nada y tengo muchos programas parados.
A ver. Estoy terminando un programa (como podeis ver en mi firma) hecho con SDL. Esta todo hecho menos la parte que tiene que leer el joystick y las teclas de la consola (no puedo ni salir del programa :miedo:)
Tenia ya escrito este codigo pero se me olvido grabarlo antes de mi ultimo format.
En fin. A lo que vamos. Puedo leer el raton (pantalla) pero no las teclas. He hecho esto:
Primero meto el enum con los codigos de tecla
enum
{
BTN_A = 0, // A / 1
BTN_X = 1, // X / 2
BTN_B = 2, // B / 3
BTN_Y = 3, // Y / 4
BTN_L = 4, // L / 5, L1
BTN_R = 5, // R / 6, L2
BTN_HOME = 6, // Home / 7, R1
BTN_HOLD = 7, // Hold / 8, R2
BTN_HELP1 = 8, // Help I / Select
BTN_HELP2 = 9, // Help II / Start
BTN_TACT = 10, // Tact / L Thumb Stick
BTN_UP = 11,
BTN_DOWN = 12,
BTN_LEFT = 13,
BTN_RIGHT = 14,
};
Ahora en el main hago esto para leer las entradas de la consola:
done = 0;
while (!done)
{
SDL_Event event;
/* Check for events */
while (SDL_PollEvent (&event))
{
switch (event.type)
{
case SDL_MOUSEMOTION:
//hacer cosas...
break;
//ahora lo mismo con el mousebutton...
//ahora la parte del joystick
case SDL_JOYBUTTONDOWN:
switch(event.jbutton.button){
case BTN_HOME:done=1;break;
case BTN_L:if (modo>0) {modo--;}break;
case BTN_R:if (modo<4) {modo++;}break;
case BTN_A:if (preset_act>0) {preset_act--;cargapreset();} break;
case BTN_B:if (preset_act<max_presets) {preset_act++;cargapreset();}break;
case BTN_LEFT:if (preset_act>0) {preset_act--;cargapreset();} break;
case BTN_RIGHT:if (preset_act<max_presets) {preset_act++;cargapreset();}break;
}
break;
//aqui pongo lo mismo pero con las teclas del ordenador para hacer pruebas....
Antes me funcionaba bien asi pero ya no. Es posible que me haya rallado con algun break o algun } (creo que no).
Si no. Podria algun alma caritativa pasarme el codigo para leer estos eventos? Es que si no no puedo hacer nada y tengo muchos programas parados.