0:00:01.147,0:00:04.850 ¡Whoo hoo! Otra animación. Esta vez tenemos una bola moviéndose a través de la pantalla, 0:00:04.850,0:00:06.952 y ustedes ya saben cómo se hace esto. 0:00:06.952,0:00:13.786 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 0:00:13.786,0:00:17.417 y un ciclo "draw" que ya conocemos donde redibujamos el fondo cada vez 0:00:17.417,0:00:20.965 asignamos colores para rellenar y dibujamos la elipse en la posición "x", y cada vez, 0:00:20.965,0:00:26.752 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, 0:00:26.752,0:00:38.210 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. 0:00:38.210,0:00:40.481 Pero mientras "speed" no sea igual a cero, 0:00:40.481,0:00:43.510 eventualmente la bola va a salir de la pantalla, 0:00:43.510,0:00:48.640 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. 0:00:48.640,0:00:51.947 Reinicias y reinicias... 0:00:51.947,0:00:55.738 Entonces, ¿qué tal esto? Cuando la bola llegue al borde de la pantalla, 0:00:55.738,0:00:59.259 en lugar de que se vaya fuera de la pantalla, como lo hace ahora, quiero que regrese. 0:00:59.259,0:01:09.628 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. 0:01:09.628,0:01:11.448 Pero hay un problema. 0:01:11.448,0:01:16.903 Sólo quiero cambiar la variable "speed" cuando la bola haya llegado al borde derecho. 0:01:16.903,0:01:25.219 Mmmm... creo que ya lo dije. Sólo quiero cambiar la variable "speed" si la bola alcanza al borde derecho. 0:01:25.219,0:01:27.793 Creo que esto necesita una sentencia "if" 0:01:27.793,0:01:31.850 Hasta el momento, le hemos dado a la computadora comandos que se deben ejecutar forzosamente. 0:01:31.850,0:01:38.447 La sentencia "if" es una manera de decir, "Hey amigo, quiero que corras este código, pero solamente en estas circunstancias específicas". 0:01:38.447,0:01:42.524 "Así que sólo cambia la variable 'speed' si la bola alcanza el borde derecho" 0:01:42.524,0:01:44.918 Y así es como se ve el código. 0:01:44.918,0:01:50.947 Todo lo que tienes que hacer es teclear "If" y luego un par de paréntesis y un par de llaves. 0:01:50.947,0:01:54.343 Dentro de los paréntesis vamos a poner la condición. 0:01:54.343,0:01:57.100 Y dentro de las llaves vamos a poner el código que se debe ejecutar. 0:01:57.100,0:02:03.384 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". 0:02:03.384,0:02:09.853 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? 0:02:09.853,0:02:22.724 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. 0:02:22.724,0:02:29.339 Cuando "x" sea mayor a 400, entonces sé que la bola ha pasado el borde derecho por un poco. 0:02:29.339,0:02:31.377 Así que vamos a ver cómo funciona. 0:02:31.377,0:02:41.521 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. 0:02:41.521,0:02:45.511 Así que en esta ocasión cuando la bola alcanza el borde derecho, ¡rebota! ¡Sí! 0:02:45.511,0:02:47.343 Y luego sigue saliendo de la pantalla. 0:02:47.343,0:02:52.668 Pero eso está bien, porque podemos hacer eso del otro lado. En este caso queremos ver si la bola ha alcanzado el borde izquierdo. 0:02:52.668,0:03:03.397 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. 0:03:03.397,0:03:07.928 Muy bien, vamos a reiniciar, y esta vez... 0:03:07.928,0:03:10.845 boing 0:03:10.845,0:03:13.425 boing 0:03:13.425,0:03:14.409 boing 0:03:14.409,0:03:16.686 ¡Hurra! ¡Funciona! 0:03:16.686,0:03:23.273 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. 0:03:23.273,0:03:29.105 Y si recuerdas, estos dos parámetros controlan el centro donde la elipse se dibuja. 0:03:29.105,0:03:36.897 Así que ahora, cuando el centro de la elipse alcanza el borde, la mitad de la elipse ha pasado el borde. 0:03:36.897,0:03:44.997 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í, 0:03:44.997,0:03:58.209 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. 0:03:58.209,0:04:05.548 Entonces queremos que se detenga cuando el centro haya alcanzado 375 que es igual a 400 menos 25. 0:04:05.548,0:04:10.980 Así que en lugar de revisar si "x" es mayor que 400, vamos a revisar que "x" sea mayor que 375. 0:04:10.980,0:04:16.648 Y en lugar de revisar si "x" es menor que 0, voy a revisar que "x" sea menor que 25. 0:04:16.648,0:04:21.968 ¡Y ahora es perfecto! ¡Sí! Mira ese rebote.