Recordatorio: pelota que rebota
April 15, 2008 – 8:09 pmEn esta sesión daremos un pequeño repaso a la forma de crear movimiento en Processing. La idea de base es muy sencilla. Para que una forma dibujada, tenga movimiento, variaremos un poco su posición a cada frame.
Este ejercicio de movimiento nos ayudará a revisar algunas de las técnicas vistas con Joan, pero además servirá de base para comenzar con la programación orientada objetos.
Empezamos creando una pelota arriba en el centro de la pantalla que bajará a velocidad constante, si se encuentra con el suelo la pelota rebotara y empezara a subir, si se encuentra con el techo rebotara y empezara nuevamente a bajar.
Una forma de hacer esto sera creando dos variables, una llamada posY que comienza a 0 y la otra velY que comienza a un valor constante. A cada frame (dentro del draw()) le añadiremos el valor de posY se actualizara mediante la velY.
posY += velY;
Esta variable posY nos indica en que posición debemos dibujar nuestra pelota (ellipse(width/2, posY, 10, 10)). Para que rebote deberemos utilizar dos condicionales que hagan que velY se invierta de valor:
velY = -velY;
Para complicar un poco el ejercicio añadiremos gravedad. La gravedad es una fuerza de atracción. En nuestro ejemplo esto se traducirá a un cambio constante de velocidad a cada frame. AsÃ, al principio de cada uno de nuestros frames haremos:
velY += gravY;
siendo velY y gravY variables que habremos definido al principio de nuestro programa. DeberÃamos obtener un resultado similar al siguiente:
finalemente añadiremos pequeños arreglos para evitar que la pelota se “enganche al suelo”, para que rebote cuando el borde de la pelota choque contra el suelo, y para que la velocidad pierda un pequeño porcentaje de su valor con cada rebote.