Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Leer más de una tecla a la vez

Iniciado por HexQZ, 24 de Junio de 2014, 08:34:18 AM

« anterior - próximo »

HexQZ

Que tal a todos.

Acabo de comenzar a programar y me he topado con un problema.
Hace un par de días que me he trabado en como leer las entradas del teclado, de modo que reconozca varias teclas presionadas al mismo tiempo.
Mi intención es asignarles valores como 1, 2, 4, 8 ... para combinarlas y hacer diagonales, aunque supongo que ya muchos conocen esa manera.
Si alguien me pudiese decir que función o método usan para esto se los agradecería mucho.

Gracias de antemano.

Starky

Buenos días HexQZ,

Creo que tendrías que decir a qué tecnología te refieres, si es C++, si es algún engine...con tan poco información te pueden responder cualquier cosa.

Un saludo.

HexQZ

Una diculpa.

Estoy usando el lenguaje C++ en CodeBlocks. Ahora mismo uso la función "kbhit" para el movimiento pero no he podido hacer lo que mencioné antes. No se que otra información necesiten, pero cualquier cosa por aquí estaré.

Darago_malaga

#3
Nunca he trabajado con Code Blocks pero has probado a usar???


if( GetKeyState(115) & 0x8000 )
{
    <EVENT>
}


El valor que se le pasa a la función es el valor ASCII de la letra que representa la tecla en Mayúsculas.

Creo que se puede usar también GetKeyState('S')

O los valores de esta tabla :
http://msdn.microsoft.com/en-us/library/dd375731(v=vs.85).aspx

Hechelion

Darago, creo que no está preguntando por mayúsculas.

Cita de: HexQZ en 24 de Junio de 2014, 08:34:18 AM
Mi intención es asignarles valores como 1, 2, 4, 8 ... para combinarlas y hacer diagonales, aunque supongo que ya muchos

Hex, respecto a tu pregunta, por lo que yo sé, hacer eso a "capella" no es nada trivial, ya que todas las rutinas de entrada convencionales no están pensadas para tener un acceso directo al estado del teclado. Por lo que recuerdo, la mejor solución pasa por crearte tu propio sistema de eventos para las pulsaciones, sin embargo nunca lo he hecho, si quieres programar juegos, lo mejor es usar alguna librería y hasta la más pequeña de las librerías para juegos ya trae resuelto este problema, así que te recomendaría que le dieras un vistazo a SDL o SFML.

HexQZ

Después de investigar un poco parece que mi solución está en SDL, ya que ocupo que se registre si hay o no hay pulsaciones de una tecla o varias a la vez. Como recién empiezo y no es algo urgente lo del teclado, seguiré usando "kbhit" hasta que aprenda a usar SDL.

Muchas gracias a todos por sus respuestas.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.