Source: Scratch Wiki en français
(Redirigé depuis Rafraîchissement d'écran)
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 :
- Éviter de devoir utiliser plusieurs fois les mêmes blocs, dans différents scripts d'un même sprite.
- Éviter de devoir utiliser plusieurs fois les mêmes blocs avec des valeurs différentes.
- Séparer son code pour mieux s'y retrouver, chaque bloc a alors une fonction bien spécifique.
- 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 ».
Créer un bloc
Par défaut, il n'y a pas de blocs dans la section « Mes Blocs » quand vous créez un projet. La section est vide, à l'exception d'un bouton, « Créer un bloc ».
Lorsque vous cliquez sur « Créer un bloc », l'outil de création de bloc apparaît. Vous pouvez modifier votre bloc en y ajoutant des entrées et des étiquettes.
Options
Entrée nombre ou texte
« Ajouter une entrée nombre » permet d'ajouter une entrée pouvant contenir des nombres, du texte ou des opérateurs (variables et blocs « rond ») :
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
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"
Bloc sans rafraîchissement d'écran
Pour créer un bloc sans rafraîchissement d'écran, utilisez le coche « Exécuter sans rafraîchissement d'écran ».
Un bloc sans rafraîchissement d'écran sera exécuté, si possible, sans que la scène soit mise à jour, c'est à dire, très vite.
Exemples
Réduction d'un script
Le script :
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