Una de las limitaciones de Scratch 1.4 es que era necesario crear un personaje por cada entidad. Es decir, que si querías tener 10 marcianitos en un videojuego, aunque fueran todos iguales y todos tuvieran el mismo comportamiento porque ejecutaban el mismo código, necesitabas programar 1 personaje y luego hacer 9 copias. Este esquema tenía varias limitaciones, ya que hay un número máximo de personajes y además el mantenimiento y depuración del código se complica, ya que si quieres realizar cualquier cambio tienes que hacerlo en todos los personajes.

Con Scratch 2.0 es posible crear clones de un personaje. ¿Cómo funciona este mecanismo de los clones? Cada clon es una copia exacta de un personaje, de forma que:

  • Cada clon ejecuta exactamente el mismo código que su personaje.
  • Cada clon cuenta con los mismos componentes que su personaje (disfraces, variables, sonidos).
  • Cuando se crea un clon, éste aparece exactamente en la misma posición que su personaje. La primera instrucción debe ser, por tanto, el posicionamiento del clon.

Para comprender el funcionamiento de los clones veamos el siguiente videojuego, en el que puedes utilizar las teclas flecha izquierda y flecha derecha para modificar el ángulo y apuntar con la flecha, y puedes disparar con la tecla espacio para tratar de acertar al dragón.

Atrapa al dragón

Como se puede comprobar, tan solo es posible lanzar una flecha al mismo tiempo, y hay que esperar a que ésta llegue a un borde o acierte al dragón para poder disparar una nueva flecha. ¿Cómo podríamos modificar el juego para que sea posible disparar varias flechas seguidas, sin tener que esperar a que choquen con un objeto? Aquí podemos hacer uso de los clones.

Para ello, habría que modificar el código de la flecha como se muestra en la siguiente imagen:

clones1

Código de la flecha utilizando clones

Y añadimos un programa en el escenario para crear un clon de la flecha cada vez que el usuario pulse la tecla espacio. Es importante que este programa no se ejecute dentro del programa «al comenzar como clon» de la propia flecha, ya que se crearía un clon por cada clon en ejecución.

clones2

Creando un clon de la flecha al pulsar el espacio

Aquí os dejamos el programa implementado con clones para que podáis jugar, estudiar su código y reutilizarlo  para personalizarlo:


Atrapa al dragón, con clones
 

Imagen de cabecera: A bunch of new figures, de Chaotic Good01. CC-NC-BY-SA