Source: Scratch Wiki en français


Qu’est-ce qu’un bloc personnalisé ?


En dehors des variables, les blocs personnalisés sont le principal type d'abstraction utilisé dans la programmation procédurale ; elles permettent aux Scratchers d'écrire des scripts sans connaître ou réfléchir aux détails de ce que fait chaque script. Une même pile de blocs peut ainsi servir plusieurs fois dans différents contextes, avec des paramètres permettant d'adapter les blocs à la situation.

Utilisation courante

Ces blocs sont utiles dans plusieurs cas :

  1. Éviter de devoir utiliser plusieurs fois les mêmes blocs, dans différents scripts d'un même sprite.
  2. Éviter de devoir utiliser plusieurs fois les mêmes blocs avec des valeurs différentes.
  3. Séparer son code pour mieux s'y retrouver, chaque bloc a alors une fonction bien spécifique.
  4. Passer outre la vitesse d'exécution des scripts de Scratch (30 FPS) et exécuter les actions contenues dans la définition du bloc aussi vite que leur complexité le permet, grâce à l'option "exécuter sans rafraîchissement d'écran".

Les options

Lorsque vous cliquez sur "Créer un bloc", l'outil de création de bloc permet à celui-ci d'avoir des entrées de données et plein d'autres choses : en cliquant sur "Options", vous avez accès à tous ces suppléments, dans l'ordre :

Entrée nombre ou texte

"Ajouter une entrée nombre" permet d'ajouter une entrée ne pouvant contenir que des nombres, du texte ou une variable : variable (ma variable)::custom // avec une variable, nombre [123]::custom // avec un nombre ou nombre [texte]::custom // avec du texte

Entrée booléenne

"Ajouter une entrée booléenne" permet d'ancrer dans les blocs des blocs comme celui-ci : booléen <[] = []> ou <> ::custom//avec un opérateur et sans opérateur

Ajouter une étiquette

Et enfin, "Ajouter une étiquette" permet tout simplement d'écrire sur le bloc du texte entre les différentes entrées :

chanter (10) fois la chanson de [la macaréna] si <((nombre1)+(3))>(5)> ::custom // ici "fois la chanson de", "si"

Exemples

mettre l'effet [fantôme v] à (100)
répéter (10) fois
ajouter (-10) à l'effet [fantôme v]
fin
attendre jusqu'à ce que <touche (espace v) pressée?>
répéter (10) fois
ajouter (10) à l'effet [fantôme v]
fin
costume suivant
répéter (10) fois
ajouter (-10) à l'effet [fantôme v]
fin
attendre jusqu'à ce que <touche (espace v) pressée?>
répéter (10) fois
ajouter (10) à l'effet [fantôme v]
fin
costume suivant
répéter (10) fois
ajouter (-10) à l'effet [fantôme v]
fin
attendre jusqu'à ce que <touche (espace v) pressée?>
répéter (10) fois
ajouter (10) à l'effet [fantôme v]
fin
costume suivant
répéter (10) fois
ajouter (-10) à l'effet [fantôme v]
fin

peut devenir

mettre l'effet [fantôme v] à (100)
répéter (10) fois
ajouter (-10) à l'effet [fantôme v]
fin
répéter (3) fois
attendre jusqu'à ce que <touche (espace v) pressée?>
transition
fin


définir transition
répéter (10) fois
ajouter (10) à l'effet [fantôme v]
fin
costume suivant
répéter (10) fois
ajouter (-10) à l'effet [fantôme v]
fin

et peut même prendre des paramètres

mettre l'effet [fantôme v] à (100)
répéter (10) fois
ajouter (-10) à l'effet [fantôme v]
fin
répéter (3) fois
attendre jusqu'à ce que <touche (espace v) pressée?>
transition [fantôme]  en (10) fois avec (100)
fin

définir transition (nom transition)  en (durée) fois avec (effet max)
répéter (durée) fois
ajouter ((effet max) / (durée)) à l'effet (nom transition)
fin
costume suivant
répéter (durée) fois
ajouter ((0) - ((effet max) / (durée))) à l'effet (nom transition)
fin

Voir aussi