También podemos crear animaciones muy lindas usando clones. Observemos el siguiente ejemplo que adaptamos del sitio de Scratch. Cada vez que se presiona la barra espaciadora, se dispararán varios fuegos artificiales. Analicemos la interfaz y el programa en sí. La interfaz será la noche y los fuegos artificiales se verán como puntos, que luego explotan como estrellas. Vamos a ir creando la interfaz en Scratch. Creamos un nuevo proyecto. Modificamos el fondo del escenario para que simule la noche, lo pintamos de negro y ponemos unos puntitos blancos para simular las estrellas. Cambiamos los disfraces del gato para simular el fuego artificial. Marcamos cambiar a modo de bits y limpiamos el dibujo del gato. Haremos varios disfraces, así habrá distintos diseños de fuego artificial. Pondremos un círculo pequeño de color diferente al negro en uno de ellos y en cada uno de los otros, dos o tres, pondremos dibujos más grandes con forma similar a una estrella, como estas que te mostramos. El disfraz de punto lo ponemos primero y luego van los de las estrellas. Pronta la interfaz. Analicemos ahora el programa. El programa procesará la barra espaciadora lanzando una cantidad al azar de fuegos, por ejemplo, entre uno y diez. El seudocódigo podría ser: cuando se presiona la barra, repetir un número a la azar de veces, crear un fuego artificial. ¿Cómo implementamos crear un fuego artificial en Scratch? En lugar de crear objetos diferentes para cada fuego artificial, podemos crear clones. De esta manera, podemos fácilmente incluir el requerimiento de un número al azar de clones y reutilizar nuestro código. Vamos a pasar nuestro seudocódigo a código Scratch. Este proceso incluye, luego de que se presione la barra de espaciar, un bloque repetir con un número al azar entre uno y diez, crearemos el fuego artificial a través de un clon y esperaremos un segundo para que la simulación de los fuegos sea más real y que haya un breve tiempo entre uno y otro. Como vimos en un ejemplo anterior, el propio objeto lo debemos esconder porque trabajaremos únicamente con los clones. Así que agregamos al comienzo el bloque esconder. Analicemos ahora cómo es el proceso que debe hacer cada clon o fuego artificial cuando comienza. Descomponiendo el proceso del clon, vemos que se puede dividir en: subir y explotar. En términos generales, el proceso subir mostrará inicialmente el objeto como un punto y lo hará desplazarse hacia arriba una cantidad al azar de pasos. Para moverlo hacia arriba apuntamos en esa dirección. Antes de que comience a subir, también le pondremos un color al azar para que quede más lindo visualmente. El seudocódigo podría ser: ponerle disfraz de punto, ponerle color, ponerlo en el centro, apuntar hacia arriba y mover una cantidad de pasos al azar. Cuando el fuego artificial explota, irá bajando y hará el efecto especial de una estrella cambiando de forma y desapareciendo poco a poco, y finalmente borramos el clon. Podríamos expresarlo en el seudocódigo en forma similar a esto: ponerle el disfraz de estrella, apuntar hacia abajo, repetir hasta que sea muy chico, cambiar el efecto, desvanecer, achicar, moverse unos pasos y al final, borrar el clon. Ahora que ya tenemos las ideas más claras, ¡a programar!. En Scratch podemos crear esos dos bloques que representan estos procesos. Completaremos la definición del bloque subir y el bloque explotar. Siguiendo nuestro seudocódigo para el proceso de subir tenemos que se le pone el disfraz de punto y se le cambia el color también al azar. El rango que elegimos es entre 15 y 200, que son valores posibles para los colores. Lo ponemos en el centro y lo orientamos hacia arriba, para que salga cada uno en diferentes direcciónes. Para hacerlo más real ponemos un bloque repetir y dentro vamos moviendo unos pasos y esperando un breve tiempo. La cantidad de veces del bloque repetir variará al azar, así los fuegos llegan a distinta altura para hacerlo aún más real. 0.1. También tendremos que agregar el bloque para mostrar el objeto, al igual que hicimos en el ejemplo de cazar fantasmas. De acuerdo a nuestro seudocódigo, el bloque explotar cambia el disfraz a una de las estrellas y lo haremos al azar. El disfraz de punto es el primero, por eso aquí pusimos entre dos y cuatro. Luego apunta hacia abajo y repetiremos cambiar el efecto, achicar y mover. Este proceso se repetirá hasta que el tamaño sea chico, por ejemplo menor a cinco. En particular, el proceso que repite es incluir el efecto pixelizar y el efecto desvanecer para lograr la animación similar a un fuego artificial bien real. También se va desplazando y esperando un breve tiempo. Al final, borramos el clon. Agregamos que cuando comience como clon, utilice el bloque subir y luego el explotar. Vamos a probarlo. Muy bien. Tenemos varios fuegos artificiales con diferentes colores y efectos. Y ¿si quisiéramos hacer que los fuegos suban más rápido, cómo lo haríamos? Todo lo que tenemos que hacer es cambiar el número de pasos del bloque mover dentro del procedimiento de subir. Simplemente cambiando este valor en un solo lugar ya obtenemos el comportamiento que queremos. ¿Fácil, no? Si en vez de usar clones, hubiéramos hecho un objeto separado para cada fuego, tendríamos que ir al código de cada uno y modificar el valor correspondiente. Esto podría ser dificultoso si tenemos muchos fuegos y nos llevaría mucho tiempo. El uso de los clones hace que nuestros programas sean más flexibles y fáciles de cambiar. Así como con los procedimientos, podemos hacer cambios en un solo lugar y afectar a todos los clones creados. Te invitamos a que sigas trabajando en esta animación por ejemplo, agregando sonidos o efectos visuales y ver de esta manera por uno mismo cuán flexible es el programa. Esperamos nos cuentes en el foro cómo te fue.