Source: Scratch Wiki en français


Les clones


Une interprétation visuelle du fonctionnement du clonage. Les clones d'un sprite parent peuvent être différents, comme le montrent les expressions faciales.

Le clonage est une fonctionnalité qui permet à un sprite de créer un clone ( ou semi-dupliqué ) de lui-même pendant l'exécution du projet. Le clone héritera des propriétés du sprite sur lequel il est basé, mais ces dernières peuvent être modifiées.

Limite du clonage

Il y a une limite de 300 clones par projet pour éviter un retard excessif ou des blocages[1], mais il est dans les faits possible d’en créer 301, comme le montre le membre de l'Équipe Scratch thisandagain dans ce projet. La limite a été ajouté avec l'arrivée de Scratch 3.0.

Usages pour le clonage

Le clonage est un aspect essentiel de nombreux jeux et projets bien conçus, réduisant le nombre de sprites et de scripts nécessaires à un projet, et empêchant ainsi tout décalage inutile.

Les clones et les blocs associés peuvent être utilisés dans / pour:

  • Jeux de Tower Defense
  • De nombreux jeux de style arcade
  • Effets spéciaux (ex. Feux d'artifice, neige)
  • Projets basés sur le RNG
  • Sentiers de souris
  • Tout projet nécessitant plusieurs sprites répétitifs

Blocs de clonage

Dans Scratch 3.0, il existe trois blocs liés au clonage. Tout se trouve dans la palette de contrôle.

Créer un clone de ()

└─ Article principal : Créer un clone de ( v) (bloc)
créer un clone de (moi-même v)

Ce bloc d'empilement clone un sprite à l’intérieur du projet, en fonction de ce qui a été sélectionné dans le menu déroulant.

LeSaviezVous
 LeSaviezVous :
La version préliminaire de Scratch 2.0 n'avait pas de menu déroulant pour sélectionner un sprite.

Quand je commence comme un clone

└─ Article principal : Quand je commence comme un clone (bloc)
quand je commence comme un clone

Ce bloc de chapeau s'active lorsqu'un clone est créé. Il ne s'exécute que dans le clone nouvellement créé, pas les clones précédents, les autres clones ou le parent.

Supprimer ce clone

└─ Article principal : Supprimer ce clone (bloc)
supprimer ce clone

Ce bloc supprime le clone dans lequel il s'exécute et arrête tous les scripts exécutés.

Sprite en double

En excluant le clonage, il existe deux manières de dupliquer une image-objet :

Créer un nouveau sprite

Cliquez avec le bouton droit sur une image-objet dans la zone ou la scène des sprites et sélectionnez « dupliquer ». Notez que les costumes, les scripts et les sons seront également copiés.

Estampillage

Sélectionnez l'outil de duplication (une figure semblable à un tampon) au-dessus de la zone de la scène et à gauche des boutons de présentation. Cliquez ensuite sur le sprite que vous souhaitez dupliquer.

Cela fera apparaître le nouveau sprite dans la nouvelle zone des sprites avec tous les mêmes costumes, scripts et sons.

Utilisation des clones

  • Les variables marquées comme « pour tous les sprites » seront les mêmes pour chaque clone, mais les variables marquées « pour ce sprite uniquement » seront personnalisées pour chaque clone, c'est-à-dire que chaque clone aura sa propre valeur pour la variable.
Info
 Info :
C'est le même principe pour les listes.

Clonage dans les programmes alternatifs à Scratch

Il existe deux types différents de clonage implémentés dans différentes modifications de Scratch. Ils sont communément appelés « clonage de style Panther » et « clonage de style BYOB ».

Panthère

Dans le clonage de style Panther, un clone hérite des propriétés de son parent mais n'en est qu'un clone, pas un nouveau sprite. D'autres sprites peuvent détecter les clones, en utilisant le Touching ()? bloquer, avec le parent comme argument. Le code pour le clonage de style Panther a été implémenté dans Scratch 1.4, laissant entendre qu'il s'agissait d'une fonctionnalité planifiée, mais qu'elle n'a pas été ajoutée. Scratch 3.0 utilise ce style de clonage.

BYOB

Dans le clonage de style BYOB, un clone est un nouveau sprite dans la liste des images-objets, avec des données modifiables qui lui sont propres. Les clones sont créés avec un bloc Opérateurs "(clone)", qui clone un sprite et lui rapporte une référence, qui peut ensuite être utilisée pour le contrôler.

Références