1 00:00:00,690 --> 00:00:08,429 Buenos días, iniciamos este segundo objeto digital referido a la programación dinámica con Processing. 2 00:00:08,990 --> 00:00:17,969 Ya vimos las nociones básicas en el anterior objeto digital, así nace una estrella, referida a nuestra famosa estrella y nuestra mascota Mickey Mouse, 3 00:00:18,789 --> 00:00:25,690 pero ahora ya es el momento de ponerla en movimiento. Para ello necesitamos ya seguir ampliando los conocimientos. 4 00:00:25,690 --> 00:00:33,850 Lo primero que tendríamos que hacer es ya introducir el concepto de función, que las funciones son muy importantes en programación. 5 00:00:34,570 --> 00:00:42,270 Y aquí en la primera pantalla ya os indicamos cómo tendríamos que definir estas funciones utilizando Java. 6 00:00:44,649 --> 00:00:52,490 Empezaremos diciendo el tipo de función que es, porque pueden ser funciones que esperen datos o no esperen datos. 7 00:00:52,490 --> 00:01:04,510 Es decir, si por ejemplo calculamos, le pedimos una función que te dibuje una determinada figura geométrica, el programa lo va a hacer y no te va a devolver ningún dato. 8 00:01:04,989 --> 00:01:12,790 Otra cosa es que sí que le preguntemos por algo y por lo tanto sería en este tipo de vuelto donde se lo tendríamos que indicar. 9 00:01:13,650 --> 00:01:20,430 A continuación iría el nombre de la función con esta nomenclatura y evidentemente con los parámetros que la definan. 10 00:01:20,430 --> 00:01:31,310 Ahora lo veremos con un ejemplo. Y entre llaves, que esto es importante, llave abierta, llave cerrada, iría todo el bloque de código que definiría esta función. 11 00:01:32,510 --> 00:01:44,609 En los apuntes que hemos dejado en el propio Excel Learning, pues tenéis los diferentes tipos de funciones, como aquí podéis estar viendo. 12 00:01:44,609 --> 00:01:51,370 Y ahora a continuación vamos a hacer ya una descripción de las que considero que son las más importantes. 13 00:01:53,349 --> 00:01:59,290 Tenemos ahí el voice setup y el voice drop. Estas son las más importantes que vamos a utilizar. 14 00:01:59,969 --> 00:02:11,210 Hay una diferencia fundamental entre ellas. En el voice setup indicaremos todas las instrucciones que queramos que solamente se lleven a cabo una vez. 15 00:02:11,210 --> 00:02:31,289 Aquí en el void setup. Sin embargo, el void drop será la parte del programa donde este entra ya en bucle. Es decir, que todo lo que coloquemos en esta línea 7 y sucesivas, pues van a estar continuamente reproduciéndose de manera indefinida o hasta que le indiquemos de alguna manera que debe parar. 16 00:02:31,289 --> 00:02:38,810 Lo vamos a ir viendo con un ejemplo, como podría ser, por ejemplo, vamos a ver, paro el vídeo. 17 00:02:39,710 --> 00:02:47,330 Bien, he escrito un par de líneas de comando. Dentro del boicetat hemos definido un tamaño de lienzo. 18 00:02:47,689 --> 00:02:53,469 Me interesa que el programa solamente pase una vez por aquí y refleje este lienzo. 19 00:02:54,129 --> 00:02:59,189 Y luego en el boidrop hemos cogido una de las figuras geométricas que ya vimos en el objeto educativo anterior, 20 00:02:59,189 --> 00:03:01,689 como puede ser el dibujo de un círculo. 21 00:03:01,849 --> 00:03:10,569 Recordad que la primera coordenada es la coordenada X del centro, la coordenada Y del centro, y este 50 sería el diámetro. 22 00:03:11,289 --> 00:03:18,409 Si nosotros ejecutamos esto, pues estamos viendo un círculo de color blanco dentro del lienzo. 23 00:03:19,150 --> 00:03:21,949 Esto podría parecer que es estático, pero no es así. 24 00:03:22,590 --> 00:03:28,849 El draw está continuamente dibujando este círculo, lo que pasa que visualmente no lo podemos ver, 25 00:03:28,849 --> 00:03:33,990 pero está continuamente dibujando círculos uno tras otro y esto no pararía nunca. 26 00:03:34,469 --> 00:03:38,289 De hecho, vamos a ver que es así a través de la siguiente modificación. 27 00:03:39,409 --> 00:03:45,289 Bien, lo que hemos hecho ha sido en esta primera línea definir una variable de tipo entera. 28 00:03:46,229 --> 00:03:49,250 Esta era la nomenclatura, empezaba por mayúscula y terminaba por mayúscula. 29 00:03:49,509 --> 00:03:55,530 Tiene el nombre coordenadaCoreX, pues se le podría poner cualquier nombre y le hemos fijado un primer valor. 30 00:03:56,129 --> 00:03:59,349 Este valor de la variable lo he introducido aquí, en la coordenada x. 31 00:03:59,930 --> 00:04:05,550 Por lo tanto, cuando ejecutamos, seguimos viendo lo mismo que teníamos antes. 32 00:04:05,830 --> 00:04:19,610 Pero ahora lo que vamos a hacer es que le vamos a decir que cor x vaya aumentando, le vamos a decir, igual a más 1. 33 00:04:19,610 --> 00:04:29,670 Es decir, con esto lo que conseguimos, voy a quitar esta línea 11, con esto vamos a poner el punto y coma, que si no nos daría error la compilación. 34 00:04:30,230 --> 00:04:39,170 Con esto lo que conseguimos es que el programa, una vez que ha leído las primeras líneas, va a entrar ya en bucle dibujando el círculo en la línea 10. 35 00:04:39,990 --> 00:04:43,990 La primera vez que pase por la línea 10, de coordenada X, cogerá 100. 36 00:04:45,970 --> 00:04:49,629 Pero cuando llegue a la línea 11, te la aumentará en una unidad. 37 00:04:49,889 --> 00:04:54,930 Por lo tanto, como una vez que haya leído a la línea 11, volverá otra vez a la línea 10, 38 00:04:55,089 --> 00:05:01,569 la segunda vez que pase ya no valdrá 100, sino que valdrá 101, 102, 103 y así sucesivamente. 39 00:05:01,569 --> 00:05:06,110 Y de esta forma vamos a ver cómo introduciríamos el movimiento. 40 00:05:06,110 --> 00:05:11,769 Vamos a ejecutarlo, a ver si no da error de compilación 41 00:05:11,769 --> 00:05:17,589 Y evidentemente ya vemos, ya podemos ver como nuestra bola se nos va desplazando 42 00:05:17,589 --> 00:05:24,829 Que era un poco el objetivo, meter ya de manera dinámica el movimiento de esta partícula 43 00:05:24,829 --> 00:05:28,110 En este caso de esta figura geométrica como podría ser el círculo 44 00:05:28,110 --> 00:05:32,009 Quizás no nos interese que vaya dejando el rastro 45 00:05:32,009 --> 00:05:47,990 Entonces, que se vaya borrando según va pasando. Eso lo podríamos conseguir con la instrucción background. Y paréntesis, paréntesis. Y de esta forma podríamos conseguir que no fuera dejando rastro. 46 00:05:47,990 --> 00:06:03,689 Lo tenemos aquí debajo, vamos a poner un valor para la escala de grises y de esta forma podría quedar, vamos a verlo, y así lo tendríamos, que es un poco el objetivo de lo que íbamos buscando. 47 00:06:05,329 --> 00:06:15,529 Bien, para hacerlo más vistoso, lo que vamos a hacer, porque aquí lo único que tenemos es que la partícula se nos va moviendo de izquierda a derecha, porque solamente está cambiando el valor de la x. 48 00:06:15,790 --> 00:06:23,689 Podríamos hacer que el valor de la i también cambiara y podríamos hacer que el valor de la i fuera aumentando de uno en uno o de manera aleatoria. 49 00:06:24,129 --> 00:06:25,009 Vamos a ver cómo sería. 50 00:06:26,170 --> 00:06:32,329 Bien, la modificación que hemos hecho nada es sencilla, hemos definido una nueva variable para la coordenada i, 51 00:06:32,329 --> 00:06:38,250 le hemos puesto el primer valor en el círculo, evidentemente en la coordenada i la hemos reflejado ahí también. 52 00:06:38,250 --> 00:06:53,730 Y la única diferencia con respecto a lo que teníamos antes era, esto conviene que quede todo alineado por temas de etiqueta, creo que es con control T, ahí, ya quedaría completamente alineado. 53 00:06:53,730 --> 00:07:09,410 Y le estoy diciendo que la coordenada X cada vez que pase por la línea 11 al aumente en 1, empezaba en 100, 100, 101, 102, 103, si me muevo la coordenada en Y quiero que de forma aleatoria elija un número cada vez que pase por la línea 12 entre 1 y 5. 54 00:07:09,410 --> 00:07:15,889 Puede coger el 1, puede coger el 2, el 3, el 4 y el 5, y lo va a ir sumando al valor de la coordenada ahí. 55 00:07:16,550 --> 00:07:19,930 Esto va a dar un movimiento más caótico. Vamos a ver cómo quedaría. 56 00:07:21,829 --> 00:07:24,029 Un movimiento un poco más caótico. 57 00:07:24,550 --> 00:07:31,930 Si esto lo aumentáramos, pues seguramente se nos iría. 58 00:07:32,089 --> 00:07:36,329 Bueno, esta es un poco la idea que pretendemos en este primer vídeo.