Programación Específica > Allegro
Movimientos Especiales
JuanK:
Loque yo haria seria diseñar un buffer (array) desde el cual leeria el teclado de manera asincrona cada determindo tiempo,
de este modo supongamos que tenemos que leerlo cada 100ms
asi que si el jugador presiona ↓→←
cada una de estas teclas quedara almacenada dentro del array en forma de pila, asi que cada 100ms reviso el contenido de la pila y segun lo que alli exista proceso una accion.
Logicamente hay que tener encuenta unas restricciones , com por ejemplo que no se le puede contabilizar el tiempo a la pila mientras no se haya presionado una tecla, pues de ser asi esto ocacionaria por ejemplo que justo al presionar ↓→ se venzan los 100ms y el ← haria parte de una secuencia diferente, asi que se inicia el econteo con la primera tecla y despues de los 100ms se verificaria el array.
JeoV:
Muchas gracias por el codigo elkami :D
voy a empezar a darle un vistazo
esto sera de gran ayuda.
:hola:
elkami:
por nada, pues que bueno que te sirvio el codigo
Amilius:
--- Cita de: "JeoV" --- hola
quisiera saber si alguien tiene idea, mas bien sepa como se hace
que una secuencia de teclas :comp: aga un movimiento
tipo juego de pelea.
1salu2 :hola:
--- Fin de la cita ---
Tomando las ideas publicadas:
Un simple buffer común y corriente POR JUGADOR pero con:
1.- Filtro para guardar sólo las teclas correspondientes a cada jugador.
2.- Guardar en tiempo transcurrido entre tecla y tecla ingresada en buffer para ahorrar líos de timer que no son pocos.
Finalmente:
3.- Simplemente revisar el buffer como cadena de texto para encontrar la secuencia deseada. Si se la encuentra revisar que la suma de tiempos transcurridos sea menor a un umbral aceptable.
Ejemplo típico de "brutality" MK "arriba,derecha,izquierda,abajo, salto, puñete, arriba, derecha,izquierda,puñete fuerte, patada media, puñete débil, patada fuerte... etc"
El anterior ejemplo, digamos una secuencia de 50 teclas presionadas en unos 5 segundos resultaría en un tremendo brutality. La ventajas de usar buffers y secuencias prácticamente en cadena de texto son bastante obvias: sólo tienes que poner en cadena de texto la secuencia de códigos de teclas y tener el tiempo máximo en el que tiene que presionarse la secuencia completa.
Recomendable tener un buffer adicional que guarda el estado de "presionado" "no presionado" de las teclas, botones o lo que sea que trabaje junto con los buffers de secuencia de teclas presionadas.
Navegación
[*] Página Anterior
Ir a la versión completa