Karoshi MSX Community
05 de Julio de 2021, 07:22:19 pm *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias:
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: [1]
  Imprimir  
Autor Tema: Pulsacion de teclas  (Leído 3966 veces)
0 Usuarios y 1 Visitante están viendo este tema.
OKI09
Karoshi Maniac
****
Mensajes: 275



WWW Email
« : 10 de Septiembre de 2008, 08:06:31 am »

Hola a todos.

Que metodo usais vosotros en la pulsacion de teclas, para que la rutina solo
se ejecute una vez. (el ASM es tan rapido que se ejecuta la rutina 20 0 30 veces con una pulsacion de tecla) Huh

Gracias.
En línea

La derrota no es una opción y no hay excusas.
"Parasiempre"
Dioniso
Visitante
« Respuesta #1 : 10 de Septiembre de 2008, 09:16:06 am »

   Si se trata de ESPACIO, por ejemplo, disparas, otro ejemplo, y enciendes una variable o un bit. Tras el siguiente HALT lees esa variable o bit y si está encendido no vuelvas a ejecutar ESPACIO (disparo) porque aún está siendo pulsado.

   Si tras un HALT pasas la rutina de detección de pulsado de teclas (es decir, ninguna ha sido pulsada), reseteas esa variable o bit. Y todo vuelva a comenzar.

   Esto es sólo una posibilidad.
En línea
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #2 : 10 de Septiembre de 2008, 09:41:17 am »

También podrías tener un problema de ubicación de la rutina. Si dices que "el ASM es demasiado rápido" posiblemente podría tratarse de que estás leyendo el teclado fuera de todo control de velocidad. Normalmente en un juego tendrás un bucle de juego sincronizado (más o menos) con el VDP usando, por ejemplo, un halt. La lectura de teclado o joystick la deberías hacer ahí; con eso y el método que te comenta Dioniso para evitar la autorepetición lo deberías tener todo solucionado.
En línea

Doom dee doom dee doom
OKI09
Karoshi Maniac
****
Mensajes: 275



WWW Email
« Respuesta #3 : 10 de Septiembre de 2008, 11:33:15 am »

OK,OK. Grin

Es logica la solucion de Dioniso (Ya me estaba complicando la vida con un contador y que hasta que no llegara a cierto valor no te dejara pulsar de nuevo) y mucho mas sencilla de lo que yo habia pensado.

Citar
Si dices que "el ASM es demasiado rápido" posiblemente podría tratarse de que estás leyendo el teclado fuera de todo control de velocidad
La deteccion de teclas la estoy haciendo dentro del bucle principal, con su retardo correspondiente (HALT) y con las demas subrutinas que hay que ejecutar, pero como os he dicho es tan rapido que me ejecuta la rutina varias veces.

Gracias, estoy seguro de que con estos consejos voy a solucionar el tema. Cheesy
En línea

La derrota no es una opción y no hay excusas.
"Parasiempre"
Páginas: [1]
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.21 | SMF © 2013, Simple Machines XHTML 1.0 válido! CSS válido!