Discuss Scratch

Shinganima
Scratcher
9 posts

Quel code pour animer a l’envers?

Je voudrais pouvoir switcher sur des costumes d’avant, aidez moi!
ma33-ma
Scratcher
500+ posts

Quel code pour animer a l’envers?

basculer sur le costume (( [number v] du costume) - (1))

Last edited by ma33-ma (April 2, 2026 15:40:47)

Shinganima
Scratcher
9 posts

Quel code pour animer a l’envers?

ma33-ma wrote:

basculer sur le costume (( [number v] du costume) - (1))

Merci mais si je fais ce poste, c’est que j’ai déjà testé la technique, et elle ne marche pas
ma33-ma
Scratcher
500+ posts

Quel code pour animer a l’envers?

#3
Car tu as des costumes avec des numéros en nom?
Shinganima
Scratcher
9 posts

Quel code pour animer a l’envers?

ma33-ma wrote:

#3
Car tu as des costumes avec des numéros en nom?

Pourtant oui!
wilhelm43
Scratcher
1000+ posts

Quel code pour animer a l’envers?

Là est le problème : si tu as des costumes dont le nom est un simple nombre, la méthode précédente ne marchera pas.

Une possibilité simple : ajouter un symbole texte (par exemple, le tiret du bas) aux costumes dont le nom est un chiffre/nombre.

Deuxième méthode :

On part sur le principe suivant : deux costumes ne peuvent pas avoir le même nom. On peut se servir de cette propriété pour mettre en place un système permettant d'avoir des costumes dont le nom est un chiffre/nombre. Il suffit de parcourir tous les costumes du script. Toutefois, la solution n'est pas très optimisée et ne fonctionne pas si tu as un seul costume dans ton sprite.

définir costume.lister // sans rafraichissement d'écran
basculer sur le costume ([1] + [])
mettre [costume v] à ([nom v] du costume)
supprimer tous les éléments de la liste [costume v]
répéter jusqu'à ce que <<([nom v] du costume) = (costume)> et <(longueur de [costume v]) > [1]>>
ajouter ([nom v] du costume) à [costume v]::list
costume suivant
fin

définir costume.précédent
mettre [costume v] à (position de ([nom v] du costume) dans [costume v])
si <(costume) = [1]> alors
basculer sur le costume (élément (longueur de [costume v]) de [costume v])
sinon
basculer sur le costume (élément ((costume) - [1]) de [costume v]
fin

Last edited by wilhelm43 (April 3, 2026 16:32:03)

Maela14
Scratcher
93 posts

Quel code pour animer a l’envers?

J'ai le même problème !
Shinganima
Scratcher
9 posts

Quel code pour animer a l’envers?

wilhelm43 wrote:

Là est le problème : si tu as des costumes dont le nom est un simple nombre, la méthode précédente ne marchera pas.

Une possibilité simple : ajouter un symbole texte (par exemple, le tiret du bas) aux costumes dont le nom est un chiffre/nombre.

Deuxième méthode :

On part sur le principe suivant : deux costumes ne peuvent pas avoir le même nom. On peut se servir de cette propriété pour mettre en place un système permettant d'avoir des costumes dont le nom est un chiffre/nombre. Il suffit de parcourir tous les costumes du script. Toutefois, la solution n'est pas très optimisée et ne fonctionne pas si tu as un seul costume dans ton sprite.

définir costume.lister // sans rafraichissement d'écran
basculer sur le costume ([1] + [])
mettre [costume v] à ([nom v] du costume)
supprimer tous les éléments de la liste [costume v]
répéter jusqu'à ce que <<([nom v] du costume) = (costume)> et <(longueur de [costume v]) > [1]>>
ajouter ([nom v] du costume) à [costume v]::list
costume suivant
fin

définir costume.précédent
mettre [costume v] à (position de ([nom v] du costume) dans [costume v])
si <(costume) = [1]> alors
basculer sur le costume (élément (longueur de [costume v]) de [costume v])
sinon
basculer sur le costume (élément ((costume) - [1]) de [costume v]
fin

Merci beaucoup! Je vais vérifié si ça fonctionne
NinoM11
Scratcher
500+ posts

Quel code pour animer a l’envers?

Il y a bien plus simple !

On enregistre le nombre de costumes, et on fait

repeat ((Nb costumes) - (1))
next costume
end
NinoM11
Scratcher
500+ posts

Quel code pour animer a l’envers?

Shinganima wrote:

ma33-ma wrote:

basculer sur le costume (( [number v] du costume) - (1))

Merci mais si je fais ce poste, c’est que j’ai déjà testé la technique, et elle ne marche pas

Et puis, cela a toujours fonctionné ce code là.

Last edited by NinoM11 (April 8, 2026 10:45:08)

ma33-ma
Scratcher
500+ posts

Quel code pour animer a l’envers?

NinoM11 wrote:

Il y a bien plus simple !

On enregistre le nombre de costumes, et on fait

repeat ((Nb costumes) - (1))
next costume
end
Le problème de ce code c'est que si tu à 1000 costumes c'est pas du tout optimisé…

Last edited by ma33-ma (April 8, 2026 14:15:57)

samoht1616
Scratcher
100+ posts

Quel code pour animer a l’envers?

ou
repeat ((nb de costumes) - (-1))
next costume
wait (0) secs
end
(je crois que c'est plus fluide comme ça )
ma33-ma
Scratcher
500+ posts

Quel code pour animer a l’envers?

samoht1616 wrote:

ou
repeat ((nb de costumes) - (-1))
next costume
wait (0) secs
end
(je crois que c'est plus fluide comme ça )
c'est 2 fois plus lent (O'(x) = 2O(x)) theoriquement-
samoht1616
Scratcher
100+ posts

Quel code pour animer a l’envers?

ah ok je ne savais pas merci et du coup, j'ai fait un projet pour tester et cela fonctionne bien ?
ma33-ma
Scratcher
500+ posts

Quel code pour animer a l’envers?

samoht1616 wrote:

ah ok je ne savais pas merci et du coup, j'ai fait un projet pour tester et cela fonctionne bien ?
Car tes noms de costumes ne sont pas des nombres
samoht1616
Scratcher
100+ posts

Quel code pour animer a l’envers?

C'est vraiment bizarre, car même avec des numéros de costumes en chiffres ça fonctionne aussi pour moi
(j'ai justement changé les costumes dans le projet avec des noms en chiffres désolé si ce n'est pas vraiment représentatif)
ma33-ma
Scratcher
500+ posts

Quel code pour animer a l’envers?

samoht1616 wrote:

C'est vraiment bizarre, car même avec des numéros de costumes en chiffres ça fonctionne aussi pour moi
(j'ai justement changé les costumes dans le projet avec des noms en chiffres désolé si ce n'est pas vraiment représentatif)
C'est parce que les numéros de costumes correspondent au nombres si ce n'est pas le cas ça ne marche pas…
NinoM11
Scratcher
500+ posts

Quel code pour animer a l’envers?

Après, il est aussi possible d'enregistrer le numéro de costume actif dans une variable, les costumes dans une liste, et de faire

switch costume to (item ((costume) - (1)) of [list v] :: list)
wilhelm43
Scratcher
1000+ posts

Quel code pour animer a l’envers?

NinoM11 wrote:

(#18)
Après, il est aussi possible d'enregistrer le numéro de costume actif dans une variable, les costumes dans une liste, et de faire

switch costume to (item ((costume) - (1)) of [list v] :: list)
Non : les entrées via listes sont considérées comme du texte et non un nombre dans le moteur de Scratch. Si un costume a pour nom un nombre inclus dans la liste, il sera privilégié sur le costume de numéro donné.

https://en.scratch-wiki.info/wiki/Switch_Costume_to_()#Things_Worth_Noting

Sinon, utiliser
basculer sur le costume (regrouper [previous costume] et [])
fonctionne aussi (à condition de ne pas avoir un costume nommé ainsi).
NinoM11
Scratcher
500+ posts

Quel code pour animer a l’envers?

wilhelm43 wrote:

NinoM11 wrote:

(#18)
Après, il est aussi possible d'enregistrer le numéro de costume actif dans une variable, les costumes dans une liste, et de faire

switch costume to (item ((costume) - (1)) of [list v] :: list)
Non : les entrées via listes sont considérées comme du texte et non un nombre dans le moteur de Scratch. Si un costume a pour nom un nombre inclus dans la liste, il sera privilégié sur le costume de numéro donné.

https://en.scratch-wiki.info/wiki/Switch_Costume_to_()#Things_Worth_Noting

Sinon, utiliser
basculer sur le costume (regrouper [previous costume] et [])
fonctionne aussi (à condition de ne pas avoir un costume nommé ainsi).

Je ne disais pas d'utiliser des nombres à l'intérieur de la liste mais bien le nom des costumes. Scratch privilégie les noms aux chiffres, c'est pour cela que cela fonctionnerait. Le seul problème serait que si le costume est le 1, il y a un bug, mais c'est l'exception qui confirme la règle. Pour cela, il suffit de faire

Si <(costume) = (1)> alors
Basculer sur le costume (élément (longueur de [liste v]) de [liste v])
Sinon
Basculer sur le costume (élément ((Costume)- (1)) de [liste v])
fin

Last edited by NinoM11 (April 11, 2026 12:04:54)

Powered by DjangoBB