Una característica algo avanzada y compleja, pero muy potente, son los clones en Scratch: nos permiten crear indefinidas copias de un objeto y que cada una de ellas se comporte de forma diferente, como nosotros queramos en cada momento.
Hoy, en nuestro Proyecto Scratch de los Viernes, vamos a ahondar en el concepto de clones en Scratch con una propuesta sencilla de entender: un hormiguero del que irán surgiendo infinitas hormigas. Sí, has leído bien: infinitas. ¿Quieres saber cómo hacerlo?
El hormiguero y las hormigas
Desde el punto de vista técnico el hormiguero puede ser el escenario, el fondo donde aparecerán los clones indefinidamente, mientras que las hormigas serán los objetos. Al contrario de lo que podríamos pensar sólo necesitaremos un objeto: una hormiga, y a partir de ella generaremos el resto de clones que tendrán prácticamente todas sus propiedades.
Así pues, tu primera labor es encontrar las imágenes adecuadas para ponerlas en tu proyecto. Yo he escogido este hormiguero y esta hormiga animada, que me permitirá darle la sensación de movimiento al proyecto.
Colocando y preparando la hormiga
El hormiguero no cumple más que una función estética, se coloca y listo. Por contra, la hormiga hay que colocarla en el lugar donde queremos que aparezca al inicio. Como vamos a trabajar con clones es importante que la hormiga esté escondida al principio, ya que sólo queremos mostrar los clones.
Así pues, colocamos la hormiga en las coordenadas adecuadas y la escondemos. Tras esto debemos generar los clones, utilizando el bloque adecuado de la categoría de piezas de Control (color amarillo). Vamos a "crear clon de mí mismo" de forma sucesiva, por siempre si queremos que sea infinito.
Cuando aprendes a manejar clones te das cuenta que la cosa se desmadra si no esperas un poquito de tiempo entre generar un clon y otro. Pruébalo, ya que en algunos casos incluso se puede llegar a "bloquear" el ordenador. Utiliza un bloque de esperar y por ejemplo con 0.1 segundos debería valer, aunque puedes personalizar lo que quieras este parámetro.
Ahora el funcionamiento es el siguiente: a medida que nuestro código va creando clones, va ejecutando todo lo que tengamos debajo de los "al comenzar como clon", que por ahora es nada. ¿Qué tiene que hacer cada uno de los infinitos clones que vamos a generar? Fácil: que apunten en una dirección aleatoria (número al azar entre 1 y 360) y que salgan "corriendo". El movimiento es equivalente a repetir hasta que toquen el borde, mover pasos.
¿Cuánto mover? Lo que quieras. A mayor sea la cifra más rápido irán las hormigas, y viceversa. Yo he añadido un 'siguiente disfraz' ya que en el objeto hormiga tengo varios disfraces para simular el movimiento; de nuevo puedes utilizar un esperar N segundos para que el movimiento sea más realista. Todos estos parámetros puedes modificarlos para adaptarlos a lo que estimes oportuno para tu proyecto.
Por último, un aspecto importante es el límite que tienen los clones. En Scratch 2, el programa sólo puede generar 300 clones simultáneamente, de forma que es muy importante ir borrándolos a medida que no los necesitemos más. Por ello, cuando el clon toca el borde utilizamos la instrucción borrar este clon para eliminarlo del programa y liberar su memoria.
Hasta el infinito… y más allá
Aunque una vez se han utilizado parecen fáciles, la realidad es que los clones en Scratch son un concepto complejo, abstracto y que muchas veces no sabemos cómo dominar. Aunque no lo parezca, los clones son excepcionalmente potentes y nos permitirán simplificar nuestro código, a la vez que ampliar los horizontes y las posibilidades de lo que podemos hacer.
¿Qué más se pueden hacer con hormigas en Scratch? Te lanzamos algunas propuestas de ampliación de este proyecto.
- Esta base es perfecta para crear un juego en el que aparecen hormigas cada cierto tiempo, y tenemos que "machacarlas" con una maza. ¿Te animas a continuar el proyecto?
- Y haz que las hormigas aparezcan "aleatoriamente", es decir, que no siempre sea cada N segundos. A veces más, a veces menos.
- ¿Y si además de hormigas apareciesen otros insectos? Puedes hacerlo con disfraces sobre el mismo objeto, o puedes crear un objeto paralelo con otro diseño.
- Generalmente las hormigas no van en línea recta. ¿Se te ocurre cómo hacer que vayan dando pequeños giros en sus trayectorias?
- ¿Qué pasaría si además hacemos que cada hormiga dejase "su rastro"? Es fácil hacerlo con el lápiz. ¿Qué imagen crees que obtendríamos?
El Proyecto Scratch de los viernes es la sección en la que, cada primer viernes de mes, proponemos una idea de proyecto y damos algunas pistas para llevarlo a cabo. Hemos hablado de movimientos, figuras geométricas, historias, juegos de preguntas y respuestas, relojes, videojuegos… ¿Quieres saber más? Échale un vistazo a las ideas recopiladas en este enlace o al estudio EDUCACIÓN 3.0 en la comunidad de Scratch donde estamos incluyendo nuestros proyectos de los Viernes. Y por supuesto, ¡cualquier propuesta o sugerencia que tengas será bienvenida!