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!

2 comentarios:

Anónimo dijo...

Tony:
Hola que tal, soy Elizabeth Pinzón profesora de un colegio privado de Guadalajara, estaba indagando en la página de Olimpiada Estatal de informática y me llamó la atención tu blog (ya que en material de estudio hay un enlace a tu blog) me parece bastante interesante todas tus aportaciones y me gustaría saber si podríamos poner en contacto pues me gustaría tener una videoconferencia "informal" para mis alumnas y que les platiques un poquito sobre una de tus entradas de tu blog.
Me gustaría involucrar más a mis alumnas en el área de la Tecnología, el año pasado participaron en una competencia de Microsoft y una alumna ganó el 3er lugar nacional y las certificaciones Microsoft son aplicadas a todas las alumnas, pero mi interés no solo es por que aprendan dicha herramienta sino que la utilicen y en el caso de programación pues es un poco difícil luchar contra la flojera de resolver problemas.
Podrías contactarme y decirme si podríamos tener una comunicación más formal para explicarte el proyecto que tengo en mente??
bueno, si te interesa mi mail es elizabeth.pinzon@gmail.com, espero tu pronta respuesta.
Gracias.
Elizabeth Pinzón
Asesora en TI

Anónimo dijo...

hola desearia que me ayudes en esto si quiero hacer que la pelota se pare con un command1 o un boton como serie mas o menos el codigo

El Tony y sus ondas...

Related Posts Plugin for WordPress, Blogger...