Scratch : découvrir les clones

Avec Scratch, on apprends à créer des scripts qui animent sprite (traduit par lutin jusqu’à récemment). Ajouter des scripts à un sprite pour lui donner un comportement finit par être assez intuitif. Mais il arrive un moment où on a besoin de plusieurs exemplaires du même sprite. Le premier réflexe est alors de dupliquer le sprite, et donc tous les scripts. Ce n’est pas la bonne démarche, ce qu’il faut dans ces cas, c’est utiliser des clones.

Créer un clone, c’est créer une copie d’un sprite. Cette copie aura les mêmes costumes, sons et scripts que l’original mais sera totalement indépendant. Voyons dans ce premier billet ce que sont les clones.

Qu’est-ce qu’un clone ?

Un seul sprite au catalogue mais deux sprites affichés.

Un clone est une copie d’un sprite. Le sprite original sera appelé le parent. La copie aura les mêmes costumes, sons et scripts que le parent mais en sera totalement indépendant.

Créer un clone signifie donc dupliquer un sprite à l’exécution du projet.

Comment créer un clone ?

Il suffit d’utiliser le bloc Créer un clone de…. Ce bloc permet de créer un clone de soi-même (c’est à dire du sprite qui exécute ce bloc) ou d’un autre sprite. N’importe quel script peut créer un clone d’un sprite. Ainsi, pour préparer une scène, la création des clones pourra être dans les scripts de la scène plutôt que d’un clone.

Tout sprite peut être cloné.

Que peut-on faite avec un clone ?

On peut donc créer un clone et une fois créé, un clone ayant les mêmes scripts que le parent, il peut faire tout ce que peut faire le parent. Mais en plus, un clone peut se supprimer de la scène. Un clone ne peut se supprimer que lui-même.

Les blocs destinés aux clones.

Attention cependant, le parent n’est pas un clone, il n’est donc pas possible de le supprimer. On parle bien ici du parent original, un clone pouvant aussi produire des clones, il peut être parent lui même… Oui, c’est là où ça se complique et où je ne trouve pas de vocabulaire plus adapté.

Un clone peut également déclencher des actions lorsqu’il est créé grâce au bloc Quand je commence comme un clone.

À quoi servent les clones ?

Options pour les sprites

Lorsque vous avez besoin de plusieurs exemplaires d’un sprite, le premier réflexe est simplement de les dupliquer. C’est possible par le menu contextuel sur les sprites. Mais dupliquer un sprite va entrainer un problème à long terme : dès que vous aurez à charger le scripte d’un sprite, il faudra le changer sur toutes les copies.

Si à la place vous utilisez les clones, vous n’aurez qu’une seule copie des scriptes, si vous devez les modifier, ce sera en un seul endroit.

Les clones permettent également de créer un nombre de sprites qui n’est pas connu lors de la création du projet mais à son exécution. C’est donc très pratique pour, par exemple, faire poper les ennemis dans un jeu.

Un exemple simple

Je n’illustrerai ce billet que par un exemple simple. Si notre scène doit avoir un nuage, je vais lui ajouter un script pour positionner le sprite après l’évènement Quand le drapeau vert est cliqué.

Si je dois ajouter un second nuage, je pourrai simplement dupliquer ce sprite avec le même script. Mais je peux aussi limiter les sprites et créant des clones avec le script ci-dessous.

Au démarrage de la scène, je déplace le sprite du nuage à sa première position où je vais le cloner (le clone sera créé à cette position) puis je le déplace à sa seconde position. J’ai ainsi deux éléments créés par le script d’un seul sprite. Si j’ai besoin de modifier une position de départ, je n’aurai pas à parcourir les sprites pour retrouver le bon, je n’aurai qu’à modifier le script. Si j’ai besoin de rajouter un troisième nuage, je le rajouterai au script. Ainsi, tout est groupé au même endroit.

Ceci est un exemple assez simple vous montrant ce qu’est un clone où j’utilise le parent comme un tampon. Mais si je dois animer ces nuages, je vais devoir adapter mes scripts. Mais ceci sera pour un autre billet.

Si vous avez aimé ce post, n’hésitez pas à laisser un commentaire ci-dessous ou sur la page Facebook 😉

À propos de... Darko Stankovski

iT guy, photographe et papa 3.0, je vous fais partager mon expérience et découvertes dans ces domaines. Vous pouvez me suivre sur les liens ci-dessous.

Vous aimerez aussi...

3 réponses

  1. Antoine dit :

    Merci c’est très utile. J’ai lu qu’il y avait la possibilité de créer des clones de style Panther ou Byob.

  1. 18 avril 2020

    […] n’utiliser qu’un sprite de nuage et le cloner. C’est ce que je vous ai montré dans l’article précédent. Certes, mais maintenant, je souhaite aussi animer ces […]

Répondre à Antoine Annuler la réponse.

En naviguant sur Dad 3.0, vous acceptez l’utilisation de cookies pour une navigation optimale et nous permettre de réaliser des statistiques de visites. Plus d'informations

Le blog Dad 3.0 utilise les cookies pour vous permettre une navigation optimale et nous permettre de réaliser des statistiques de visite. Dad 3.0 affichant des publicités, celles-si utilisent également des cookies pour un ciblage publicitaire. En continuant la navigation sur Dad 3.0, vous acceptez le dépôt et la lecture de cookies.

Fermer