Source: Scratch Wiki en français
Un problème de script dans Scratch est vite arrivé. C'est pourquoi il est souvent utile aux Scratcheurs de le montrer à la communauté pour voir d'où vient le problème. Malheureusement, il n'est pas toujours facile d'expliquer du code… Il est donc plus pratique de le montrer dans le forum. Heureusement, c'est possible. Des blocs personnalisés peuvent de même être créés pour imaginer d'autres fonctions ou simplement changer les couleurs et d'autres paramètres.
Les blocs "classiques"
Les blocs "classiques" sont ceux présents dans l'éditeur Scratch.
Comment faire?
Quand vous répondez à un message dans les forums de Scratch, dans la barre d'édition au dessus de la boite de texte, se trouve un bouton bleu avec la forme grossière d'un bloc Scratch. Déplacez votre souris sur ce bouton et un menu déroulant apparaît.
Dans ce menu, tous les blocs "classiques" de Scratch sont présents. Il suffit de déplacer sa souris sur le type de bloc contenant le bloc que vous voulez ajouter. Ensuite, le bloc s'affiche sur la droite de la liste. Il n'y a plus qu'à cliquer dessus pour ajouter le bout de code correspondant.
1. Le script de base
Tout message dans les forums est normalement censé accueillir du texte, pas des blocs… Il faut donc spécifier que les mots et caractères qui vont suivre seront des blocs du forum. On utilise donc les "tags" (sorte de petit mot spécifiant quelque chose) délimités par les crochets.
Donc, tous les mots et caractères entre ces "tags" seront considérés comme du code, code qui sera traduit en blocs.
2. Le code pour chaque bloc
Entre ces 2 tags, s'ajoute sur chaque ligne un bout de code pour chaque bloc. Le code du bloc peut être ajouté automatiquement en cliquant sur le bloc correspondant dans la barre d'édition du message mais peut être aussi trouvé sur l'article du Wiki correspondant.
[scratchblocks]
aller à x:(0) y:(0)
[/scratchblocks]
Les blocs "personnalisés"
Vous voulez imaginer d'autres blocs (en tout cas leur apparence) ? C'est super ! Cet article devrait vous aider !
Qu'est-ce-que c'est?
Le principe des blocs personnalisés est simple : imaginez des blocs avec des couleurs différentes que celles habituelles sur Scratch et avec des formes qui ne dépendent pas du type de bloc…
Quand vous lirez cet article :: motion hat dire ça vous intéresse [beaucoup v] :: events si <vous comprenez tout::grey> alors:: operators essayer [sans tarder v] :: sensing sinon :: operators ne pas laisser tomber et relire l'article :: looks cap end Une fois que vous l'aurez fini :: motion hat dire que vous vous êtes amusé à (100 :: control) % :: custom
Ça vous a donné envie ? Super !
Juste sur le forum ?
Oui, seulement sur les forums. Il n'y a pas moyen d'imaginer vos blocs directement dans l'éditeur de Scratch (en ligne ou hors-ligne).
Alors, comment fait-on ?
Il suffit de reprendre le code pour les blocs "classiques", mais à la place d'écrire du code correspondant aux blocs qui existent, écrire ce que l'on veut.
Il y a moyen de forcer l'apparence de ce bloc personnalisé de plusieurs façons.
1. Forcer la couleur
Afin de pouvoir personnaliser la couleur de votre bloc, ajoutez "::" à la fin de votre bloc. Vous vous retrouvez donc avec quelque chose de ce style :
[scratchblocks]
code ::
[/scratchblocks]
Puis ajoutez à la suite le mot correspondant à la couleur qui vous plaît (en référence aux blocs en anglais) :
Bloc | Couleur et type | Code |
---|---|---|
bloc::motion
|
Pour un bloc bleu, comme ceux de mouvement | bloc::motion
|
bloc::looks
|
Pour un bloc mauve, comme ceux d'apparence | bloc::looks
|
bloc::sound
|
Pour un bloc violet, comme ceux de sons | bloc::sound
|
bloc::variables
|
Pour un bloc orange, comme ceux des variables | bloc::variables
|
bloc::list
|
Pour un bloc orange foncé, comme ceux des listes | bloc::list
|
bloc::events
|
Pour un bloc jaune, comme ceux des événements | bloc::events
|
bloc::control
|
Pour un bloc orange clair, comme ceux de contrôle | bloc::control
|
bloc::sensing
|
Pour un bloc bleu clair, comme ceux des capteurs | bloc::sensing
|
bloc::operators
|
Pour un bloc vert, comme ceux des opérateurs | bloc::operators
|
bloc::custom
|
Pour un bloc rose/rouge, comme ceux personnalisés | bloc::custom
|
bloc::custom-arg
|
Pour un bloc rose/rouge, comme ceux des arguments | bloc::custom-arg
|
bloc::grey
|
Pour un bloc gris clair | bloc::grey
|
bloc::obsolete
|
Pour un bloc rouge, comme ceux obsolètes | bloc::obsolete
|
bloc::extension
|
Pour un bloc vert foncé, comme ceux des extensions | bloc::extension
|
bloc::pen
|
Pour un bloc d'extension stylo | bloc::pen
|
bloc::music
|
Pour un bloc d'extension musique | bloc::music
|
bloc::video
|
Pour un bloc d'extension de détection vidéo | bloc::video
|
bloc::tts
|
Pour un bloc d'extension de synthèse vocale | bloc::tts
|
bloc::translate
|
Pour un bloc d'extension traduction | bloc::translate
|
bloc::boost
|
Pour un bloc d'extension Lego BOOST | bloc::boost
|
bloc::wedo
|
Pour un bloc d'extension Lego WeDo 2.0 | bloc::wedo
|
bloc::ev3
|
Pour un bloc d'extension Lego Mindstorm EV3 | bloc::ev3
|
bloc::microbit
|
Pour un bloc d'extension micro:bit | bloc::microbit
|
bloc::makeymakey
|
Pour un bloc d'extension Makey-Makey | bloc::makeymakey
|
bloc::gdxfor
|
Pour un bloc d'extension Go Direct | bloc::gdxfor
|
bloc::#ff00ff
|
Pour un bloc avec une couleur personnalisée (au format hexadécimal) | bloc::#ff00ff
|
Si vous voulez un bloc, mettons… vert, vous allez donc écrire :
[scratchblocks]
texte :: operators
[/scratchblocks]
Et vous obtiendrez :
texte :: operators
2. Forcer la forme
Il est également possible de, en plus de la couleur, changer le "type" de bloc. Cela a pour effet de modifier sa forme (forme de chapeau ; comme bloc de début ou bloc de fin). Pour modifier cette apparence de bloc, il suffit d'ajouter un bout de code dans le code du bloc, juste avant celui déterminant la couleur. Cela donne donc un code comme suit :
Code :: Apparence du bloc
Bloc | Type | Code |
---|---|---|
bloc::hat |
Blocs de tête | bloc::hat
|
bloc::stack |
Blocs d'empilement | bloc::stack
|
bloc::ring |
Blocs de valeur | bloc::ring
|
bloc::reporter |
Blocs de valeur | bloc::reporter
|
bloc::boolean |
Blocs Booléens | bloc::boolean
|
bloc::cap |
Blocs de fin | bloc::cap
|
bloc{ } |
Blocs en forme de C | bloc{
|
bloc { } { } |
Blocs en forme de E | bloc {
|
Ci suit un exemple.
[scratchblocks]
texte :: hat operators
[/scratchblocks]
Qui donnerait :
texte :: hat operators
3. Ajouter une entrée
Il est également possible d'ajouter différents types d'entrées à vos blocs.
Bloc | Type | Code |
---|---|---|
bloc (10) |
Entrée numérique (nombre) | bloc (10)
|
bloc [abc] |
Entrée de texte | bloc [abc]
|
bloc <vrai> |
Entrée booléenne | bloc <vrai>
|
bloc [choix v] |
Entrée depuis un menu déroulant | bloc [choix v]
|
bloc [#123456] |
Entrée de couleur | bloc [#123456]
|
Exemple :
[scratchblocks]
une [liste v] :: looks
une (variable bleue :: motion) :: pen
ça vous <intéresse> ? :: operators
un [texte] ? :: sensing
ok, un (5)ème bloc :: control
[/scratchblocks]
donnera :
une [liste v] :: looks une (variable bleue :: motion) :: pen ça vous <intéresse> ? :: operators un [texte] ? :: sensing ok, un (5)ème bloc :: control
4. Les icônes et accessoires par "@"
Bloc | Type | Code |
---|---|---|
@greenFlag ::events |
Drapeau vert | @greenFlag
|
@turnLeft ::motion |
Tourner à gauche | @turnLeft
|
@turnRight ::motion |
Tourner à droite | @turnRight
|
((report []::stack control) @addInput ::grey ring) |
Quand une entrée de sélection est ouverte | @addInput
|
{ }@loopArrow::control |
La flèche de boucle | @loopArrow
|
Exemple :
[scratchblocks]
@greenFlag quand le drapeau rouge est cliqué::events hat
@turnLeft tourner (15) fois à gauche::motion stack
[/scratchblocks]
@greenFlag quand le drapeau rouge est cliqué::events hat @turnLeft tourner (15) fois à gauche::motion stack
Les commentaires
Dans le forum comme dans l'éditeur, vous pouvez ajouter des commentaires à côté des blocs.
Pourquoi faire ?
Comme dans l'éditeur, cela sert à donner des précisions sur un bloc ou un ensemble de blocs.
Comment faire ?
Pour ajouter un commentaire au bloc de code, il suffit d'ajouter un double slash sur la même ligne que le bloc en question, suivi de votre commentaire.
aller à x:(0) y:(100) // position du début
donnera :
aller à x:(0) y:(100)::motion // position du début