• Viernes 15 de Noviembre de 2024, 12:31

Autor Tema:  Movimientos Especiales  (Leído 3823 veces)

JeoV

  • Miembro activo
  • **
  • Mensajes: 49
    • Ver Perfil
Movimientos Especiales
« en: Miércoles 28 de Julio de 2004, 14:50 »
0
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:

elkami

  • Miembro activo
  • **
  • Mensajes: 26
    • Ver Perfil
Re: Movimientos Especiales
« Respuesta #1 en: Sábado 31 de Julio de 2004, 08:45 »
0
Pues yo no tengo mucha experiencia ni nada, pues yo podria tener pero la flojera y el vicio a los videojuegos no me deja. ya no e programado nada de nada dejo todo a medias pero al menos te puedo dar este consejo.
que seria algo asi
poner lo basico de que cheque la tecla primera por decir quieres hacer una bola( tipo street fighter) izq abajo derecha pow.
entonces checas haber si el usuario apreta izq entonces si apreto izq que se active la opcion bola por decir en 1 y ya si bola es 1 que cheque si apreta abajo y si apreta abajo que se haga 2 y si es 2 que cheque si apreta derecha y se hace 3 y si apreta pow se hace 4 y asi, y pones un timer que si la bola es diferente de 0 y pasa no se 1 segundo sin apretar nada se rompa  y se cambie a 0 el estado de la bola.
otro dia te ayudo bien ahora pa que no desesperes te pongo esto
podrias hacerlo tipo el antiguo metodo que seria poner
a=capturar tecla
y si a es abajo pues asi le sigues
pero esta muy chafa ahorita ya es tarde y me da flojera ponerme a hacer bien la otra que seria bien detectando las teclas
a lo mejor esto no te servira de nada =P pero almenos yo me entretuve un rato escribiendo ejejejej
ahi mañana o pasado te pongo ya el codigo de una solucion para eso no mas que ahorita no tengo tiempo para eso.

JeoV

  • Miembro activo
  • **
  • Mensajes: 49
    • Ver Perfil
Re: Movimientos Especiales
« Respuesta #2 en: Lunes 2 de Agosto de 2004, 15:02 »
0
muchas gracias elkami :hola:

gracias por el consejo.

con esto ya me di una idea de como se hace.
yo no soy un programador tan experto

a todos nos va ayudar esto.

te agradesco por responderme.

elkami

  • Miembro activo
  • **
  • Mensajes: 26
    • Ver Perfil
Re: Movimientos Especiales
« Respuesta #3 en: Martes 3 de Agosto de 2004, 01:27 »
0
como te dije, te iba hacer un codigo pues lo hice como en el msg al dia siguiente pero pues problemas de mi isp no me dejaron subir el archivo pero ahora que regreso el internet ahi te va el archivo =P
cualquier duda, pregunta =O
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

elkami

  • Miembro activo
  • **
  • Mensajes: 26
    • Ver Perfil
Re: Movimientos Especiales
« Respuesta #4 en: Martes 3 de Agosto de 2004, 03:05 »
0
porcierto se me olvido explicar un par de cosas
el programa de arriba es sencillo tan solo reconoce 3 secuencias
que serian las comunes tipo sthret fighter
en ryu que son la bola , las patadas y el gancho
estan puestas con las flechas del teclado el golpe seria el enter y la patada el alt, lo que hace el programa es que una vez que reconoce un comando pone en la pantalla bola , patada, gancho segun sea
bola = atras abajo adelante enter
patadas = adelante abajo atras alt
gancho = adelante abajo adelante enter
porcierto faltaria ponerle a este sistema algo para que si la tecla que seguiria del truco no la pone ya lo quebre y lo ponga en 0 para que no afecte tanto para reconocer siguientes trucos
creo que es todo =O

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Movimientos Especiales
« Respuesta #5 en: Martes 3 de Agosto de 2004, 05:41 »
0
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.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

JeoV

  • Miembro activo
  • **
  • Mensajes: 49
    • Ver Perfil
Re: Movimientos Especiales
« Respuesta #6 en: Martes 3 de Agosto de 2004, 15:16 »
0
Muchas gracias por el codigo elkami :D

voy a empezar a darle un vistazo
esto sera de gran ayuda.

 :hola:

elkami

  • Miembro activo
  • **
  • Mensajes: 26
    • Ver Perfil
Re: Movimientos Especiales
« Respuesta #7 en: Miércoles 4 de Agosto de 2004, 04:52 »
0
por nada, pues que bueno que te sirvio el codigo

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: Movimientos Especiales
« Respuesta #8 en: Miércoles 4 de Agosto de 2004, 05:13 »
0
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:
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.