17 octubre 2007

Moviéndose en el tiempo...

Un sueño que ha tenido el hombre, es el de poder viajar en el tiempo. En este mensaje no pretendo hablar de viajes al pasado y futuro (ni que fuera una película como Volver al futuro), pero sí de una manera de mover cosas en el tiempo mediante Visual Basic 6.0.

El Timer es un control estándar el VB6 que no se usa demasiado. Desgraciadamente he visto malos usos de este control, como alumnos que lo usan para que aparezca un Splash Screen con una barra de progreso (ProgressBar) como si estuviera cargando datos o algo por el estilo. O sea, para pura pérdida de tiempo para andar faroleando.

En fin, en base a una inquietud de mi alumno Peinado de 3TPO, hicimos en clase un programa que usa el Timer. Este programa se encarga de mover una pelota por la ventana y que rebote en las orillas de la ventana.

En primer lugar, busqué en internet la imagen de una pelota para ponerlo en la forma (que yo llamé frmRebota) y le cambié el tamaño para que fuera más pequeño. Esta es la imagen:


Una vez hecho esto, abrí VB6 e hice un nuevo proyecto. Lo único que tiene de diferente es que le cambié el color de fondo de la ventana a Blanco (con la propiedad BackColor) porque la pelota tiene blanco en las esquinas y que no se viera gacho, tiene un PictureBox (que bauticé como picPelota) y un Timer (le dejé el nombre por defáult: Timer1). Así se ve la ventana en vista diseño:


Ahora vamos viendo el código. Declaro dos variables enteros que me sirven para saber cuántos pixeles voy a aumentar en X y Y (llamados VelX y VelY). En el Form_Load, inicializo VelX y VelY y le digo a Timer1 que comience a hacer algo (Timer1.Enabled=True). La función que "hace la movida" de la pelota, es el Timer1_Timer, la cual se ejecuta cada 5 milisegundos en mi caso (esto se define en la propiedad Timer1.Interval, la cual guarda el número de milisegundos que deben transcurrir para poder ejecutar el código en Timer1_Timer).

Para mover la pelota, es muy fácil. Primero le sumo VelX a picPelota.Left para cambiar la coordenada X de picPelota. Luego verifico que no se haya salido de la ventana y si salió, cambio VelX para que vaya en dirección contraria la próxima vez. Luego hago algo muy similar en el eje Y: a picPelota.Top le sumo VelY y si se sale, invierto la cantidad en que se va a mover en dirección vertical para que la próxima vez vaya en otro sentido. Aquí te dejo el código:


Si te interesa el código fuente de este proyect, haz click aquí. ¡Hasta la próxima!
Publicar un comentario
Related Posts Plugin for WordPress, Blogger...