Clones

A clone is an exact copy of a sprite which inherits also all the scripts. This is useful if you want to create multiple spirits which have similar behavior.

There are 3 clone-related blocks:

  • a hat block to start as a clone
  • a stack block to clone the current sprite
  • an end block to delete the clone (and stops its scripts)

If a variable is marked as for this sprite only, each clone will have its own private variable, just as each clone has its:

  • position
  • direction
  • pen
../_images/clone_blocks.png

Decaying sprite trail

https://scratch.mit.edu/projects/390996965

You can use clones to create a mouse trail. Usually these clones will fade out and disappear. For exemple they can decrease their size, or use the ghost effect to become invisible.

At start the sprite is initialized with an initial:

  • position
  • direction
  • size

Inside the forever loop the sprite is rotated by 30 degrees and advanced. It executes a circle. At each of the 12 positions a clone is created every 0.3 seconds.

../_images/clone1.png

Every 0.4 seconds the clone size decreases by 10%. After 10 iterations the clone is deleted.

../_images/clone1b.png

Pen trail towards the edge

https://scratch.mit.edu/projects/391011669

This project creates clones at random positions and random directions.

../_images/clone2.png

Each clone continues to move forward in its chosen direction. When it reaches the edge, the clone is deleted.

../_images/clone2b.png

Pressing the space bar erases the stage.

../_images/clone2c.png

Disappearing balloons

https://scratch.mit.edu/projects/391035000

An image with a large portion of a sky had been chosen. The ballons appear at random positions at the bottom of the image.

First we hide the orginal sprite, then we enter a forever loop and:

  • go to a random location
  • switch the costume to a different color
  • create a clone
  • wait 0.5 seconds
../_images/clone3.png

Each cloned balloon moves upwards into the sky. At each iteration it gets smaller, until it disappears. To make the movement look more natural, a small random change is introduced into the direction.

../_images/clone3.png

Particle effects

Clones can be used for special effects such as:

  • fire, sparks, explosions
  • fog, clouds
  • bubbles,
  • birds, fish, leaves

https://scratch.mit.edu/projects/391003021

For each clone we define 3 individual variables:

  • the x displacement dx
  • the y displacement dy
  • a boolean variable is_original to indicate if the sprite is the original or a clone
../_images/clone4_var.png

At the start of the program there is only the parent sprite.

  • set is_orignal to 1 (it’s not a clone)
  • hide the parent sprite
  • create a spark effect at position (1, 1)
  • enter a forever loop
  • create sparks at the mouse position when the mouse is down
../_images/clone4_flag.png

The function effect at (x, y) does the following:

  • go to position (x, y)
  • check if the sprite is an original (is_original = 1)
  • repeat 10 times
  • wait 0.05 seconds and create 3 clones
../_images/clone4_effect.png

When a clone starts it does

  • show the sprite
  • set is_original to 0 (it’s a clone)
  • set a random speed (dx, dy)
  • add a random color variation
  • repeat 20 times
  • become more transparent (add 4% ghost effect)
  • change position by (dx, dy)
  • add gravity to dy
  • delete the clone after 20 iterations
../_images/clone4_clone.png