Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Evento Key Pres Para Mover Objetos Por Teclado
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Evento Key Pres Para Mover Objetos Por Teclado 
 
Hola.

Tengo que mover un objeto mediante el teclado incrementando x.

lo estoy haciendo asi:

 
IF Key.code = Key.Left THEN objeto.x -= 1
 IF Key.code = Key.Right THEN objeto.x += 1


Esto esta en el evento key pres. Pero no me gusta el resultado.

Al cambiar de dirección el objeto se para unos segundos hasta volver a andar.

Necesito un movimiento mas rápido y fluido al cambiar la dirección.

Como algunos de esos juegos de marcianitos, que cuando cambias la nave de dirección la cambia inmediatamente y el movimiento es suave y fluido.

¿alguien sabe como conseguirlo? o se os ocurre algo.

gracias.
 



 
última edición por pittusa el Miercoles, 30 Marzo 2011, 20:31; editado 1 vez 
pittusa - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Evento Key Pres Para Mover Objetos Por Teclado 
 
No hay ningún problema con ese código. Si quieres que los movimientos sean más rápidos deberías aumentar el valor del incremento. Si quieres que el movimiento sea más fluido debes disminuir el valor del incremento (obviamente no puedes usar un valor menor a 1 pixel).

Yo diría que ahora tienes la mayor fluidez posible, pero menor velocidad (reacción). Entonces, deberías aumentar el incremento.

Pero, si los resultados que obtienes no te satisfacen, el problema puede estar en otro lado. ¿Qué es lo que estás moviendo? ¿Un PictureBox? Entonces podrías utilizar imágenes más livianas. Si ello aún no te satisface deberías usar la biblioteca sdl y trabajar con sprites.

También puede que haya algún error en alguna parte de tu código que no expusiste que esté haciendo más lenta la respuesta.

Una pequeña modificación permitiría que no se evalúe dos veces key.code, pero no creo que ello marque una diferencia apreciable:
IF Key.code = Key.Left THEN
  objeto.x -= 1
ELSE IF Key.code = Key.Right THEN
  objeto.x += 1
ENDIF
 

 




===================
Cómo programar con Gambas

Speed Books: informática libre.
 
fabianfv - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Problemas Para Mover Carpetas En Gambas DiegoSeC General 2 Jueves, 28 Abril 2011, 02:20 Ver último mensaje
DiegoSeC
No hay nuevos mensajes Comando Para Mover Archivo A La Papelera 4octavio4 Shell Scripting 3 Jueves, 15 Marzo 2012, 01:46 Ver último mensaje
Shell
No hay nuevos mensajes Mover Una Ventana Desde Un Evento De Un Panel gambafeliz General 4 Miercoles, 25 Septiembre 2019, 06:56 Ver último mensaje
gambafeliz
No hay nuevos mensajes Función Para Mover Un Archivo A La Papelera. tincho Aplicaciones/Fragmentos de Código 8 Miercoles, 25 Septiembre 2019, 22:36 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

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


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron