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.
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:
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.
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
[…] 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. […]
[…] 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. […]
[…] alguna otra ocasión ya hemos hablado del uso de clones en Scratch. Esta característica, aunque es un poco más avanzada, supone una funcionalidad muy útil en […]
Muy bien explicada la función de Clocar en Scratch. Gracias por compartir.
[…] Puedes encontrar una explicación paso a paso sobre el proyecto anterior en este artículo: Clones en proyectos Scratch para implementar un disparo. […]
estan buenos los tutoriales, muy didácticos. fàciles de senguir aunque tambien tocan temas que tienen mucha profundidad… en el caso de los clones, estaba repasando todo esto, luego de dos años sin poder programar y he visto que existe la posibilidad de crear clones del escenario (aunque el escenario es fijo y no permite tanta manipulación como un objeto y que desde el escenario se pueden crear clones de otros objetos…me gustaria saber mas sobre eso..(hice 3 pequeños experimentos sobre clones del fondo y resultò muy interesante…aunque no encuentro muy bien sus utiidades. me gustaria que hablen un poco de eso…y si es posible por ejemplo clonar un bloque… o por ejemplo, hago un bloque que cree clones de un objeto, y lo puedo reutiizar otras veces pero como un clon de di mismo, no se si se puede, ni que utilidad tendría… siupongo que serviria para juegos mas comlejos o interfaces de usuario, botoneras, color pickers diversos, etc. )- suena bastante complejo. pero em interesa saber si es posible. – otra cosa que me parece posible es crear un falso escenario (que sería un objeto) y cuando inicio el programa en vez de ver el escenario se crearía un clon del escenario que seria ese objeto…lo que os permitiria modificar el escenario tant como lo hacemos con u objeto…(no se tal vez no funcione. y no tenga utilidado complique demasiado los programas.) gracias.
Hola, Rafael,
Algunas cosas de las que comentas podrían hacerse, pero no siguen el enfoque propuesto por Scratch. Quizás para ese tipo de ideas sería más apropiado usar Snap!, que te ofrece mucha mayor flexibilidad: https://snap.berkeley.edu/
Saludos.