Título: Pulsacion de teclas Publicado por: OKI09 en 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) ??? Gracias. Título: Re: Pulsacion de teclas Publicado por: Dioniso en 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. Título: Re: Pulsacion de teclas Publicado por: jltursan en 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.
Título: Re: Pulsacion de teclas Publicado por: OKI09 en 10 de Septiembre de 2008, 11:33:15 am OK,OK. ;D
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. :D |