2011-01-03 18 views
6

A veces, un teclado de computadora normal solo aceptará las entradas del usuario hasta cierta clave simultáneamente. Tengo un teclado de Logitech que puede aceptar hasta 3-4 pulsaciones de teclas al mismo tiempo. La computadora no acepta más entradas si presiona más de 4 teclas para este teclado. Y también depende de ciertas áreas de tu teclado también. Algunas ubicaciones permiten presionar más teclas (como las teclas de flecha), mientras que algunas ubicaciones le permiten presionar solo 1-2 teclas. Esto también difiere de teclado a teclado también. Algunos teclados antiguos solo aceptan hasta 1-2 teclas.Aceptación de más entradas de teclado simultáneas

Esto no es problemático con el trabajo habitual de oficina, pero cuando se trata de juegos. Por ejemplo, imagina un juego de plataforma, donde tienes que saltar, atacar y controlar la dirección al mismo tiempo. Esto implica varias pulsaciones de tecla y algunos teclados no pueden aceptar dicha entrada simultánea. Sin embargo, lo he intentado en varios juegos y la cantidad de entradas de teclado posibles también parece ser diferente. Por lo tanto, tenemos dos problemas:

  1. Los teclados tienen diferentes cantidades de entradas simultáneas.
  2. Algunos juegos pueden aceptar más entradas de teclado que otros juegos.

Al principio, pensé que esto era solo un problema de hardware, pero ¿por qué algunos programas se comportan de manera diferente? ¿Por qué algunos programas pueden aceptar más entradas de teclado que otros programas? Entonces, ¿cómo podemos escribir nuestros programas para aceptar más entradas de teclado?

Respuesta

5

Si quiere arreglar esto, necesita comprar un teclado caro.

Un programa llamado GlovePie permite la entrada programable de diferentes fuentes y puede resolver este problema. página de descarga de GlovePie Here.~

Por ejemplo, estoy desarrollando un juego de rol, y el teclado de mi computadora portátil no puede detectar una combinación de ejecutar + arriba + izquierda (ejecutar al noreste). Sin embargo, si conecto mi controlador USB Logitech y trazo esas teclas exactas del teclado (Arriba, Izquierda y B [para ejecutar]) a los botones del controlador usando GlovePie, I puede ejecutar comandos al noreste sin problemas.

En cuanto a sus preguntas, no estoy seguro de por qué los programas reaccionan de manera diferente a la entrada del teclado, pero podría ser con cómo detectan su entrada. Por ejemplo: un juego basado en Java puede detectar DirectInput (la firma enviada desde sus dispositivos de entrada/salida) mientras que un emulador (como el emulador SNES ZSNES para PC) puede detectar solo la instancia de la tecla "Arriba". Otro programa de emulación de entrada, AutoHotkey, no puede controlar un juego basado en Java porque no usa la misma forma de entrada que el juego detecta (no usa la entrada directa de Java).

Entonces, para obtener más llaves, usaría un controlador USB con GlovePie funcionando.

Presupuesto de otro foro:.. "No es realmente un problema (técnicamente) La solución es bastante simple, pero aumenta el coste del teclado Considere este sencillo problema: Usted tiene 64 teclas Cuántos cables. ¿necesita si desea distinguir todas las pulsaciones de tecla simultáneas posibles? Respuesta: 65, una común y una para cada clave. Sin embargo, si organiza las teclas en una matriz con 8x8 teclas solo necesita 16 cables. 8 para las columnas y 8 para las filas. Esto reduce la cantidad de pines en el chip del controlador del teclado y hace que el teclado sea mucho más económico de producir. Todos los teclados que he visto se producen de esta manera."

7

La cita de otro foro es completamente incorrecto ...

Teclados utilice siempre una matriz y un arreglo de 8x8 en la membrana clave/microinterruptores cubrirían 64 teclas. Envío de potencia abajo de una fila común y seleccionando la (s) columna (s) (si las hay) conectadas a una a la vez, solo escanea muy rápido. El chip controlador puede determinar tantas teclas a la vez como lo desee (incluyendo todas ellas) sin tomar cualquier tipo de golpe de rendimiento (tiene que sondear todas las teclas de todos modos, hacia arriba o hacia abajo).

Esa información es serializada por el teclado para informar al host que e Las ventilaciones han ocurrido (factores limitantes son el diseño del chip # 1 y la cantidad de tráfico que quiere poner en el bus # 2). Los controladores los convierten en los eventos de sistema operativo apropiados (factor de limitación n. ° 3). Esos eventos son manejados por aplicaciones, que a su vez pueden tener sus propios límites en la cantidad de claves que rastrean (# 4).

Están pasando muchas cosas, pero no han usado 1 cable por clave + tierra desde aproximadamente los años 60. Y si no crees que la matriz pueda escanear lo suficientemente rápido, mira cualquier pantalla lcd/led, esa es la misma matriz que está sucediendo, solo al revés.

+0

"determina tantas teclas al mismo tiempo como lo desee (incluidas todas)" Esta afirmación es completamente incorrecta dada la información en la respuesta de areve. – horta

+0

Gracias por su comentario - La respuesta de Areve es una demostración práctica de los muchos factores limitantes que se tratan aquí. No hay forma de evitar el hecho de que una matriz puede sondear más de 8x8 o significativamente más interruptores sin problema, considere la cantidad de datos que necesita cambiar para una pantalla 1080p/100Hz con eventos binarios de 1920x1080x8x3x100 por segundo. –

+0

Entiendo que el matrizado permite una cantidad increíblemente mayor de datos que se pueden enviar o eliminar. En la salida, nunca hay un problema porque, en una pantalla LCD, elige qué columna mostrar en un momento dado y nunca elige dos columnas al mismo tiempo. En entrada, sin embargo, la computadora no puede elegir qué columnas/filas presiona el usuario al mismo tiempo, lo que resulta en presionar teclas ambiguas si dos líneas y dos columnas están en cortocircuito. El resto de su resumen es muy útil, ya que muestra que incluso si el primer problema de matrizado de hardware es fijo, todavía hay otros obstáculos. – horta

4

Encontré un buen artículo Keyboard Ghosting Explained!, que explicaba todo lo que necesitaba saber sobre este tema. Y tiene un área de prueba para poder encontrar qué combinaciones de teclas en mi computadora portátil no funcionan bien juntas.

+0

Gracias por su enlace, muy útil con la explicación y la demostración. – Demurgos

+0

El enlace está muerto. Link Rot hath anuló esta respuesta. –

Cuestiones relacionadas