Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

Quiero Mover Un Formulario Mientras Presiono Una Tecla De Direccion ¿Como?

Quiero Mover Un Formulario Mientras Presiono Una Tecla De Direccion ¿Como?
Artículo
Responder citando    Descargar mensaje  
Mensaje 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?



 
Juan Luis Lopez - Ver perfil del usuario Enviar mensaje privado  
Juan Luis Lopez [ Domingo, 11 Septiembre 2011, 15:05 ]
 


Quiero Mover Un Formulario Mientras Presiono Una Tecla De Direccion ¿Como?
Comentarios
Responder citando    Descargar mensaje  
Mensaje 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.



 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Domingo, 11 Septiembre 2011, 23:50 ]
Responder citando    Descargar mensaje  
Mensaje 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!



 
Juan Luis Lopez - Ver perfil del usuario Enviar mensaje privado  
Juan Luis Lopez [ Lunes, 12 Septiembre 2011, 19:05 ]
Responder citando    Descargar mensaje  
Mensaje 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.



 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Lunes, 12 Septiembre 2011, 23:54 ]
Mostrar mensajes anteriores:    
 
Publicar nuevo tema  Responder al tema  Página 1 de 1
 
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 



 

cron