Discuss Scratch

_Xx-ScratchCat-xX_
Scratcher
100+ posts

Un problème avec les clones, et une idée pour les développeurs d'y remédier

J'ai découvert un problème assez embêtant avec scratch 3, c'est avec la sauvegarde de variable avec les clones.
Je m'explique.
Par exemple, dans ce bout de code :

mettre [clone v] à [1]
répéter (5) fois
créer un clone de [moi-même v]
ajouter à [clone v] (1)
end

quand je commence comme un clone
dire (clone)

Dans ce code, le lutin créé un clone de lui qui va dire une variable. Or, entre chaque clone créé, la variable augmente, et on s'attendrait à ce que tous les lutins disent la même chose, logiquement. Voilà le système de Scratch 2 :
Lorsqu'un clone est créé et qu'il utilise une variable seulement visible par le même lutin dans son bout de code, il va garder cette valeur en mémoire et si la variable change, elle ne bougera pas pour le clone. Dans un sens, on peut trouver ça embêtant. Mais cela permet entre autres de savoir à quel clone on s'adresse: le n°1, le n°2…
Dans mon bout de code, si vous avez compris cette logique, le premier clone va dire 1, le deuxième 2, etc…

Seulement, dans Scratch 3, les clones vont prendre en compte les changements de cette variable. Tous les clones vont dire la même chose, et on ne pourra plus les distinguer. Si ils ont fait ça, c'est qu'ils considéraient le système de Scratch 2 comme étant un problème, et cela aurait été un système trop complexe pour l'utilisation de Scratch dans l'éducation, et je comprends cette logique.
Une solution pour remédier à ce problème est de mettre en place une variable prédéfinie :

(clone n°)
(De couleur jaune, par logique, ou plutôt brune avec Scratch 3)
Cela résoudrait beaucoup de mes soucis avec Scratch 3, car je me sers énormément de cette technique.
Ou alors, un nouveau type de variables, en plus de “pour tous les lutins” et “seulement ce lutin” : “seulement pour les clones”
Car oui, on peut avoir besoin de plusieurs variables dans le même système de clone du même lutin, et qui doivent être différentes.

Voilà Voilà

Level Editor 2.0 !
Construisez des niveaux, et envoyez-le à vos amis pour qu'ils y jouent !

https://scratch.mit.edu/projects/289812147/
Itharius
Scratcher
1000+ posts

Un problème avec les clones, et une idée pour les développeurs d'y remédier

pas du tout , si c'est le cas, c'est que tu as mal programmé ton truc parce que mes clones se différencient grâce à leur variable propre à son lutin au moment de sa création et , j'ai déjà testé depuis scratch 3.0 de faire dire son numéro à un clone et il le dit très bien.
littlekitykat
Scratcher
500+ posts

Un problème avec les clones, et une idée pour les développeurs d'y remédier

ben mince j'avais répondu a ce message … Ou est mon post …
Je rejoins Itharius . il faut bien faire attention a ta variable Clone. Elle ne doit pas etre déclarer en variable globale mais bien en varibale “pour ce lutin uniquement” sinon en effet ca ne marchera pas.

Si tu laisse ton code créer ta variable sans la définir au départ , par défaut il la créera en Variable Globale. Donc cela ne marchera pas non plus.


Quelques projets en cours !!

____________
Itharius
Scratcher
1000+ posts

Un problème avec les clones, et une idée pour les développeurs d'y remédier

littlekitykat
Scratcher
500+ posts

Un problème avec les clones, et une idée pour les développeurs d'y remédier

En fait je viens d'avoir son problème !! et c'est moche en effet !!

Quand tu codes sous Edge les variables sont toutes liées alors qu'elles ne devraient pas l’être !!

Alors que sous Chrome tout marche parfaitement !! Ca devient compliqué si on doit jongler d'un navigateur a un autre .. !

Quelques projets en cours !!

____________
Itharius
Scratcher
1000+ posts

Un problème avec les clones, et une idée pour les développeurs d'y remédier

j'ai essayé mon projet “chat” en utilsant edge, tout fonctionne normalement, le problème n'est que lors de l'enregistrement ? Il faut le signaler sur la partie bugs.
PlumandFlocon
Scratcher
2 posts

Un problème avec les clones, et une idée pour les développeurs d'y remédier

Voilà ! J'ai fait une programmation avec des clones et le problème c'est que les clones se dédoublent à chaque fois que j'en crée un. Par exemple, lors d'un second clonage, deux clones sont apparus au lieu d'un.
Si vous savez comment remédier à ça, dites le moi SVP !!!!
Deuzz
Scratcher
500+ posts

Un problème avec les clones, et une idée pour les développeurs d'y remédier

Bonsoir

1) Evites de déterrer un vieux sujet pour poser ta question

2) j'imagine que tu utilise un message pour créer tes clones…. étant donné que chaque clone reçoit le message, chaque clone deja existant crée un nouveau clone…

PlumandFlocon
Scratcher
2 posts

Un problème avec les clones, et une idée pour les développeurs d'y remédier

Comment y remédier ?
Debility_Kheops
Scratcher
1000+ posts

Un problème avec les clones, et une idée pour les développeurs d'y remédier

Bonsoir,
Crée une variable en cochant la case uniquement pour ce sprite nommée : “estunclone” (bien sur comme toutes variables, le nom est relatif)

Quand le drapeau est cliqué, tu l'initialises à 0.
Et quand le clone est créé, tu l'initalises à 1.
Comme ceci :
quand le drapeau vert pressé
mettre [estunclone v] à (0)

// et

quand je commence comme un clone
mettre [estunclone v] à (1)

Ensuite lorsque le Sprite reçois un message, tu n'a plus qu'à vérifier si c'est bien le Sprite de base et non un clone.
Comme ceci :
quand je reçois [voiciunmessagedetest v]
si <(estunclone) = (0)> alors
/ ton code ::custom

Bonne soirée,
Scratch on !

Last edited by Debility_Kheops (April 17, 2022 19:56:59)


Need help? I'm here

Powered by DjangoBB