-
¡Whoo hoo! Otra animación. Esta vez tenemos una bola moviéndose a través de la pantalla,
-
y ustedes ya saben cómo se hace esto.
-
Tenemos una variable "x", que nos dice la posición de la bola, una variable "speed" que nos dice qué tan lejos la bola se mueve cada vez
-
y un ciclo "draw" que ya conocemos donde redibujamos el fondo cada vez
-
asignamos colores para rellenar y dibujamos la elipse en la posición "x", y cada vez,
-
vamos a cambiar "x" y la vamos a hacer igual al valor anterior de "x" más la variable "speed". Así que si hago que "speed" sea menor,
-
puedes ver que se mueve más lento. Puedo hacerla negativa, y hacer que se mueva en sentido contrario, o hacerla igua a cero, y la bola dejará de moverse.
-
Pero mientras "speed" no sea igual a cero,
-
eventualmente la bola va a salir de la pantalla,
-
Y siempre puedo presionar el botón de reinicio para traerla de regreso, pero ya sabes, después de un rato eso se ve mal.
-
Reinicias y reinicias...
-
Entonces, ¿qué tal esto? Cuando la bola llegue al borde de la pantalla,
-
en lugar de que se vaya fuera de la pantalla, como lo hace ahora, quiero que regrese.
-
Y yo sé cómo hacer que la bola regrese, sólo hacemos que "speed" sea negativa, -5. Si hago "speed" negativa, entonces la bola va a regresar.
-
Pero hay un problema.
-
Sólo quiero cambiar la variable "speed" cuando la bola haya llegado al borde derecho.
-
Mmmm... creo que ya lo dije. Sólo quiero cambiar la variable "speed" si la bola alcanza al borde derecho.
-
Creo que esto necesita una sentencia "if"
-
Hasta el momento, le hemos dado a la computadora comandos que se deben ejecutar forzosamente.
-
La sentencia "if" es una manera de decir, "Hey amigo, quiero que corras este código, pero solamente en estas circunstancias específicas".
-
"Así que sólo cambia la variable 'speed' si la bola alcanza el borde derecho"
-
Y así es como se ve el código.
-
Todo lo que tienes que hacer es teclear "If" y luego un par de paréntesis y un par de llaves.
-
Dentro de los paréntesis vamos a poner la condición.
-
Y dentro de las llaves vamos a poner el código que se debe ejecutar.
-
Entonces la manera en que esto funciona es : "Si esta condición es verdadera, entonces ejecuta este código, de otra manera no te molestes en hacerlo".
-
Así que en nuestro caso, la condición es que la bola alcance el borde derecho. ¿Cómo sabemos si la bola ha alcanzado el borde derecho?
-
Tenemos esta variable "x" que nos dice en dónde está la bola, y sé que el borde de la pantalla es cuando "x" es igual a 400, así que vamos a ver.
-
Cuando "x" sea mayor a 400, entonces sé que la bola ha pasado el borde derecho por un poco.
-
Así que vamos a ver cómo funciona.
-
Y el código que vamos a ejecutar como ya lo dijimos antes es cambiar la variable "speed". Asignando a "speed" el valor -5. Vamos a reiniciar y ver qué pasa.
-
Así que en esta ocasión cuando la bola alcanza el borde derecho, ¡rebota! ¡Sí!
-
Y luego sigue saliendo de la pantalla.
-
Pero eso está bien, porque podemos hacer eso del otro lado. En este caso queremos ver si la bola ha alcanzado el borde izquierdo.
-
Y eso es cuando "x" es menor que cero, y lo que queremos hacer es cambiar "speed" a un valor positivo de nuevo, así que "speed" es igual a 5.
-
Muy bien, vamos a reiniciar, y esta vez...
-
boing
-
boing
-
boing
-
¡Hurra! ¡Funciona!
-
Y sé que estamos comprobando si el balón ha ido más allá de los bordes, pero se siente como que va un poco más allá de los bordes.
-
Y si recuerdas, estos dos parámetros controlan el centro donde la elipse se dibuja.
-
Así que ahora, cuando el centro de la elipse alcanza el borde, la mitad de la elipse ha pasado el borde.
-
Así que si queremos arreglar eso, debemos detener la elipse un poco antes. Si nuestro borde está aquí, en 400, y queremos detener nuestra elipse cuando llegue aquí,
-
y podemos ver en la función que la elipse tiene una anchura de 50, eso significa que del centro al extremo de la elipse tiene 25.
-
Entonces queremos que se detenga cuando el centro haya alcanzado 375 que es igual a 400 menos 25.
-
Así que en lugar de revisar si "x" es mayor que 400, vamos a revisar que "x" sea mayor que 375.
-
Y en lugar de revisar si "x" es menor que 0, voy a revisar que "x" sea menor que 25.
-
¡Y ahora es perfecto! ¡Sí! Mira ese rebote.