Foros del Web » Programación para mayores de 30 ;) » C/C++ »

SDL como conocer tecla presionada

Estas en el tema de SDL como conocer tecla presionada en el foro de C/C++ en Foros del Web. Buenas maestros, estoy desarrollando una apliacion interactiva con C++ y la libreria grafica SDL, bien, la cuestion es ¿Como se cuando un usuario mantiene una ...
  #1 (permalink)  
Antiguo 17/12/2008, 16:45
Avatar de minkweb  
Fecha de Ingreso: septiembre-2005
Mensajes: 443
Antigüedad: 18 años, 7 meses
Puntos: 14
SDL como conocer tecla presionada

Buenas maestros, estoy desarrollando una apliacion interactiva con C++ y la libreria grafica SDL, bien, la cuestion es

¿Como se cuando un usuario mantiene una tecla presionada?

ya se como detectar el momento en que se presiona una tecla pero... ¿Como saber si la deja presionada?
Intente combinando KEYDOWN y KEYUP pero no me resulto...

Si existe algun comando para saber q tecla se mantiene presionada se los agradeceria

Saludos
__________________
Juegos
Juegos iphone
  #2 (permalink)  
Antiguo 17/12/2008, 17:31
Avatar de minkweb  
Fecha de Ingreso: septiembre-2005
Mensajes: 443
Antigüedad: 18 años, 7 meses
Puntos: 14
Respuesta: SDL como conocer tecla presionada

Bueno ya di con la respuesta asi se puede...



Código:
    int terminar = 0;
    Uint8 *teclas; 
    
    while( ! terminar )
    {
        SDL_Event event;
        SDL_PollEvent (&event);
        teclas = SDL_GetKeyState(NULL);
        if(teclas[SDLK_ESCAPE] ) terminar = 1;
        if(teclas[SDLK_LEFT]) ac.MoverEscenario(1);
        if(teclas[SDLK_RIGHT]) ac.MoverEscenario(3);
        if(teclas[SDLK_UP]) ac.MoverEscenario(2);
        if(teclas[SDLK_DOWN]) ac.MoverEscenario(4);
        if(event.type == SDL_QUIT) terminar =1;
    }
es un code q vengo desarrollando para un juego, cuando dejas presionada una tecla no detiene el movimiento, y adicionalmente se puede cerrar con ESC y con la x de la ventana

Saludos
__________________
Juegos
Juegos iphone
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:57.