Cloning – Scratch Wiki

Posted: June 19, 2016 at 2:37 pm

Cloning is a feature that allows a sprite to create a clone, or semi-duplicate, of itself, while the project is running. This can be useful in tower defense games, for example, for a wave of objects. Clones of a sprite will be the same as the original, or parent sprite, but as a separate instance. Clones inherit the parent's scripts, costumes, sounds, and properties, but can then be modified. There is a limit of 300 clones per project to prevent excessive lagging or crashes,[1] but 301 can be made.

In Scratch 2.0, there are three blocks related to cloning. All can be found in the Control palette.

This block will clone the sprite it runs in. Its version in the Scratch Day 2011 prealpha had no dropdown insert to select a sprite.

It is also possible to clone other clones recursively.

This Hat Block activates when a clone is created. It only runs in the newly created clone, not previous clones or the parent.

This Cap Block will delete the clone it runs in.

Not to be confused with cloning, sprites can be duplicated by two methods:

This will make the new sprite appear in the new sprites area with all of the same costumes, scripts, and sounds.

Variables for all sprites will be the same for each clone, but variables for this sprite only will be different for each clone.

There are two different types of cloning implemented in different Scratch modifications. They are commonly referred to as "Panther-style cloning", and "BYOB-style cloning".

In Panther-style cloning, a clone inherits its parent's properties, but is only a clone of it, not a new sprite. Other sprites can sense the clones, using the Touching ()? block, with the parent as its argument. The code for Panther-style cloning was actually implemented in Scratch 1.4, hinting that it was a planned feature, but wasn't added. Scratch 2.0 uses this style of cloning.

In BYOB-style cloning, a clone is a new sprite in the sprite list, with editable data all of its own. Clones are created with an Operators block "(clone)", which clones a sprite and reports a reference to it, which can then be used to control it.

Read the original:

Cloning - Scratch Wiki

Related Posts