[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:01.15,0:00:04.85,Default,,0000,0000,0000,,¡Whoo hoo! Otra animación. Esta vez tenemos una bola moviéndose a través de la pantalla, Dialogue: 0,0:00:04.85,0:00:06.95,Default,,0000,0000,0000,,y ustedes ya saben cómo se hace esto. Dialogue: 0,0:00:06.95,0:00:13.79,Default,,0000,0000,0000,,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 Dialogue: 0,0:00:13.79,0:00:17.42,Default,,0000,0000,0000,,y un ciclo "draw" que ya conocemos donde redibujamos el fondo cada vez Dialogue: 0,0:00:17.42,0:00:20.96,Default,,0000,0000,0000,,asignamos colores para rellenar y dibujamos la elipse en la posición "x", y cada vez, Dialogue: 0,0:00:20.96,0:00:26.75,Default,,0000,0000,0000,,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, Dialogue: 0,0:00:26.75,0:00:38.21,Default,,0000,0000,0000,,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. Dialogue: 0,0:00:38.21,0:00:40.48,Default,,0000,0000,0000,,Pero mientras "speed" no sea igual a cero, Dialogue: 0,0:00:40.48,0:00:43.51,Default,,0000,0000,0000,,eventualmente la bola va a salir de la pantalla, Dialogue: 0,0:00:43.51,0:00:48.64,Default,,0000,0000,0000,,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. Dialogue: 0,0:00:48.64,0:00:51.95,Default,,0000,0000,0000,,Reinicias y reinicias... Dialogue: 0,0:00:51.95,0:00:55.74,Default,,0000,0000,0000,,Entonces, ¿qué tal esto? Cuando la bola llegue al borde de la pantalla, Dialogue: 0,0:00:55.74,0:00:59.26,Default,,0000,0000,0000,,en lugar de que se vaya fuera de la pantalla, como lo hace ahora, quiero que regrese. Dialogue: 0,0:00:59.26,0:01:09.63,Default,,0000,0000,0000,,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. Dialogue: 0,0:01:09.63,0:01:11.45,Default,,0000,0000,0000,,Pero hay un problema. Dialogue: 0,0:01:11.45,0:01:16.90,Default,,0000,0000,0000,,Sólo quiero cambiar la variable "speed" cuando la bola haya llegado al borde derecho. Dialogue: 0,0:01:16.90,0:01:25.22,Default,,0000,0000,0000,,Mmmm... creo que ya lo dije. Sólo quiero cambiar la variable "speed" si la bola alcanza al borde derecho. Dialogue: 0,0:01:25.22,0:01:27.79,Default,,0000,0000,0000,,Creo que esto necesita una sentencia "if" Dialogue: 0,0:01:27.79,0:01:31.85,Default,,0000,0000,0000,,Hasta el momento, le hemos dado a la computadora comandos que se deben ejecutar forzosamente. Dialogue: 0,0:01:31.85,0:01:38.45,Default,,0000,0000,0000,,La sentencia "if" es una manera de decir, "Hey amigo, quiero que corras este código, pero solamente en estas circunstancias específicas". Dialogue: 0,0:01:38.45,0:01:42.52,Default,,0000,0000,0000,,"Así que sólo cambia la variable 'speed' si la bola alcanza el borde derecho" Dialogue: 0,0:01:42.52,0:01:44.92,Default,,0000,0000,0000,,Y así es como se ve el código. Dialogue: 0,0:01:44.92,0:01:50.95,Default,,0000,0000,0000,,Todo lo que tienes que hacer es teclear "If" y luego un par de paréntesis y un par de llaves. Dialogue: 0,0:01:50.95,0:01:54.34,Default,,0000,0000,0000,,Dentro de los paréntesis vamos a poner la condición. Dialogue: 0,0:01:54.34,0:01:57.10,Default,,0000,0000,0000,,Y dentro de las llaves vamos a poner el código que se debe ejecutar. Dialogue: 0,0:01:57.10,0:02:03.38,Default,,0000,0000,0000,,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". Dialogue: 0,0:02:03.38,0:02:09.85,Default,,0000,0000,0000,,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? Dialogue: 0,0:02:09.85,0:02:22.72,Default,,0000,0000,0000,,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. Dialogue: 0,0:02:22.72,0:02:29.34,Default,,0000,0000,0000,,Cuando "x" sea mayor a 400, entonces sé que la bola ha pasado el borde derecho por un poco. Dialogue: 0,0:02:29.34,0:02:31.38,Default,,0000,0000,0000,,Así que vamos a ver cómo funciona. Dialogue: 0,0:02:31.38,0:02:41.52,Default,,0000,0000,0000,,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. Dialogue: 0,0:02:41.52,0:02:45.51,Default,,0000,0000,0000,,Así que en esta ocasión cuando la bola alcanza el borde derecho, ¡rebota! ¡Sí! Dialogue: 0,0:02:45.51,0:02:47.34,Default,,0000,0000,0000,,Y luego sigue saliendo de la pantalla. Dialogue: 0,0:02:47.34,0:02:52.67,Default,,0000,0000,0000,,Pero eso está bien, porque podemos hacer eso del otro lado. En este caso queremos ver si la bola ha alcanzado el borde izquierdo. Dialogue: 0,0:02:52.67,0:03:03.40,Default,,0000,0000,0000,,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. Dialogue: 0,0:03:03.40,0:03:07.93,Default,,0000,0000,0000,,Muy bien, vamos a reiniciar, y esta vez... Dialogue: 0,0:03:07.93,0:03:10.84,Default,,0000,0000,0000,,boing Dialogue: 0,0:03:10.84,0:03:13.42,Default,,0000,0000,0000,,boing Dialogue: 0,0:03:13.42,0:03:14.41,Default,,0000,0000,0000,,boing Dialogue: 0,0:03:14.41,0:03:16.69,Default,,0000,0000,0000,,¡Hurra! ¡Funciona! Dialogue: 0,0:03:16.69,0:03:23.27,Default,,0000,0000,0000,,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. Dialogue: 0,0:03:23.27,0:03:29.10,Default,,0000,0000,0000,,Y si recuerdas, estos dos parámetros controlan el centro donde la elipse se dibuja. Dialogue: 0,0:03:29.10,0:03:36.90,Default,,0000,0000,0000,,Así que ahora, cuando el centro de la elipse alcanza el borde, la mitad de la elipse ha pasado el borde. Dialogue: 0,0:03:36.90,0:03:44.100,Default,,0000,0000,0000,,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í, Dialogue: 0,0:03:44.100,0:03:58.21,Default,,0000,0000,0000,,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. Dialogue: 0,0:03:58.21,0:04:05.55,Default,,0000,0000,0000,,Entonces queremos que se detenga cuando el centro haya alcanzado 375 que es igual a 400 menos 25. Dialogue: 0,0:04:05.55,0:04:10.98,Default,,0000,0000,0000,,Así que en lugar de revisar si "x" es mayor que 400, vamos a revisar que "x" sea mayor que 375. Dialogue: 0,0:04:10.98,0:04:16.65,Default,,0000,0000,0000,,Y en lugar de revisar si "x" es menor que 0, voy a revisar que "x" sea menor que 25. Dialogue: 0,0:04:16.65,0:04:21.97,Default,,0000,0000,0000,,¡Y ahora es perfecto! ¡Sí! Mira ese rebote.