https://foro.gambas-es.org/viewtopic.php?f=1&t=1890
-----------------------------------
Juan Luis Lopez
Sunday, 11 September 2011, 15:05

Quiero Mover Un Formulario Mientras Presiono Una Tecla De Direccion ¿Como?
-----------------------------------
Hola a todos!
Mi problema es el siguiente:
Estoy haciendo un juego y quiero que al MANTENERr presionada un tecla el formulario se mueva.
Por ejemplo:
Si mantengo pulsada la flecha izquierda, el formulario debe moverse a la izquierda hasta que suelte la tecla.

El evento keypress no me ayuda ya que solo lo mueve una vez.

¿Alguna idea?


-----------------------------------
Shell
Sunday, 11 September 2011, 23:50

Re: Quiero Mover Un Formulario Mientras Presiono Una Tecla De Direccion ¿Como?
-----------------------------------
Hola Juan.

¿ Y si tuvieses una rutina por tiempo que controlase que hay pulsada una tecla cada x tiempo ?.
Como si hiciera un barrido.


-----------------------------------
Juan Luis Lopez
Monday, 12 September 2011, 19:05

Re: Quiero Mover Un Formulario Mientras Presiono Una Tecla De Direccion ¿Como?
-----------------------------------
Eso es lo que digo.
En el GameLoop (que se ejecuta cada x ms) puse en el evento keypress() la orden de mover el formulario (o el sprite)
El problema es que keypress() si lo llamas cada x ms si la tecla la pulsas, detecta la tecla en el primer barrido, pero en el segundo no.

La solucion que he cogido es:

1.crear una clase con propiedades .X y .XSpeed.

2.Crear un procedimiento MoveAllObjects() que mueva la posicion X de un objeto asi: 

  Objeto.X = Objeto.X + Objeto.XSpeed
3.En el keypress() 

   Si la tecla es ARRIBA entonces
      Objeto.XSpeed=1
   FinSi

4.En el KeyRelease()
   Si la tecla es ARRIBA entonces
      Objeto.XSpeed=0
   FinSi
5. en el gameloop() (que se ejecuta cada X ms)

    Moveallobjects()

Asi el efecto es que si presiono una tecla se mueve el sprite hacia la direccion que quiero hasta que la suelto.

Gracias por la ayuda!
En breve sacare un conjunto de funciones para crear juegos facilmente usando SDL

Y asi tambien podemos entre todos mejorar algunas cosillas o añadir.

Saludos!


-----------------------------------
Shell
Monday, 12 September 2011, 23:54

Re: Quiero Mover Un Formulario Mientras Presiono Una Tecla De Direccion ¿Como?
-----------------------------------
Me alegro de que solucionaras el problema.

Quedo a la espera de ver tus progresos. ;-)


