1 00:00:01,147 --> 00:00:04,850 ¡Whoo hoo! Otra animación. Esta vez tenemos una bola moviéndose a través de la pantalla, 2 00:00:04,850 --> 00:00:06,952 y ustedes ya saben cómo se hace esto. 3 00:00:06,952 --> 00: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 4 00:00:13,786 --> 00:00:17,417 y un ciclo "draw" que ya conocemos donde redibujamos el fondo cada vez 5 00:00:17,417 --> 00:00:20,965 asignamos colores para rellenar y dibujamos la elipse en la posición "x", y cada vez, 6 00:00:20,965 --> 00: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, 7 00:00:26,752 --> 00: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. 8 00:00:38,210 --> 00:00:40,481 Pero mientras "speed" no sea igual a cero, 9 00:00:40,481 --> 00:00:43,510 eventualmente la bola va a salir de la pantalla, 10 00:00:43,510 --> 00: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. 11 00:00:48,640 --> 00:00:51,947 Reinicias y reinicias... 12 00:00:51,947 --> 00:00:55,738 Entonces, ¿qué tal esto? Cuando la bola llegue al borde de la pantalla, 13 00:00:55,738 --> 00:00:59,259 en lugar de que se vaya fuera de la pantalla, como lo hace ahora, quiero que regrese. 14 00:00:59,259 --> 00: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. 15 00:01:09,628 --> 00:01:11,448 Pero hay un problema. 16 00:01:11,448 --> 00:01:16,903 Sólo quiero cambiar la variable "speed" cuando la bola haya llegado al borde derecho. 17 00:01:16,903 --> 00:01:25,219 Mmmm... creo que ya lo dije. Sólo quiero cambiar la variable "speed" si la bola alcanza al borde derecho. 18 00:01:25,219 --> 00:01:27,793 Creo que esto necesita una sentencia "if" 19 00:01:27,793 --> 00:01:31,850 Hasta el momento, le hemos dado a la computadora comandos que se deben ejecutar forzosamente. 20 00:01:31,850 --> 00: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". 21 00:01:38,447 --> 00:01:42,524 "Así que sólo cambia la variable 'speed' si la bola alcanza el borde derecho" 22 00:01:42,524 --> 00:01:44,918 Y así es como se ve el código. 23 00:01:44,918 --> 00:01:50,947 Todo lo que tienes que hacer es teclear "If" y luego un par de paréntesis y un par de llaves. 24 00:01:50,947 --> 00:01:54,343 Dentro de los paréntesis vamos a poner la condición. 25 00:01:54,343 --> 00:01:57,100 Y dentro de las llaves vamos a poner el código que se debe ejecutar. 26 00:01:57,100 --> 00: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". 27 00:02:03,384 --> 00: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? 28 00:02:09,853 --> 00: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. 29 00:02:22,724 --> 00:02:29,339 Cuando "x" sea mayor a 400, entonces sé que la bola ha pasado el borde derecho por un poco. 30 00:02:29,339 --> 00:02:31,377 Así que vamos a ver cómo funciona. 31 00:02:31,377 --> 00: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. 32 00:02:41,521 --> 00:02:45,511 Así que en esta ocasión cuando la bola alcanza el borde derecho, ¡rebota! ¡Sí! 33 00:02:45,511 --> 00:02:47,343 Y luego sigue saliendo de la pantalla. 34 00:02:47,343 --> 00: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. 35 00:02:52,668 --> 00: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. 36 00:03:03,397 --> 00:03:07,928 Muy bien, vamos a reiniciar, y esta vez... 37 00:03:07,928 --> 00:03:10,845 boing 38 00:03:10,845 --> 00:03:13,425 boing 39 00:03:13,425 --> 00:03:14,409 boing 40 00:03:14,409 --> 00:03:16,686 ¡Hurra! ¡Funciona! 41 00:03:16,686 --> 00: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. 42 00:03:23,273 --> 00:03:29,105 Y si recuerdas, estos dos parámetros controlan el centro donde la elipse se dibuja. 43 00:03:29,105 --> 00:03:36,897 Así que ahora, cuando el centro de la elipse alcanza el borde, la mitad de la elipse ha pasado el borde. 44 00:03:36,897 --> 00: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í, 45 00:03:44,997 --> 00: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. 46 00:03:58,209 --> 00:04:05,548 Entonces queremos que se detenga cuando el centro haya alcanzado 375 que es igual a 400 menos 25. 47 00:04:05,548 --> 00:04:10,980 Así que en lugar de revisar si "x" es mayor que 400, vamos a revisar que "x" sea mayor que 375. 48 00:04:10,980 --> 00:04:16,648 Y en lugar de revisar si "x" es menor que 0, voy a revisar que "x" sea menor que 25. 49 00:04:16,648 --> 00:04:21,968 ¡Y ahora es perfecto! ¡Sí! Mira ese rebote.