Source: Scratch Wiki en français
Si Scratch permet facilement de faire apparaître un texte à l’écran avec le bloc dire []
, il est impossible de personnaliser la bulle obtenue (police, taille, position, couleur, fond…).
Ce tutoriel permettra de personnaliser l'affichage d'un texte en vous laissant une totale liberté sur ces différents aspects.
Méthodes
Il existe trois méthodes pour afficher des caractères visuels à l'écran sur Scratch :
- depuis des clones de costumes ;
- avec un estampillage ;
- depuis des codes de sauvegarde permettant de dessiner des caractères.
La première méthode présente des avantages : elle n’utilise aucune extension et les caractères peuvent être vectoriels. Toutefois l'écriture n'est pas instantanée et une faible latence est perceptible entre chaque caractère.
La seconde méthode permet de réaliser sans latence l’affichage, mais elle utilise l’extension Stylo et les caractères obtenus sont nécessairement pixelisés.
Ce tutoriel présentera les deux premières méthodes.
Afficher une variable en continu
Ce tutoriel permet l’affichage une seule fois d’un texte ou du contenu d’une variable, sans modification possible. Pour afficher le texte en continu, il convient de répéter indéfiniment l’affichage, comme expliqué dans le tutoriel « Afficher une variable avec un sprite ».
Costumes des caractères
Chaque caractère doit avoir son propre costume. Il existe trois manières d'ajouter un caractère :
- Utiliser les lettres proposées dans la Bibliothèque des costumes (polices Block, Glow et Story)
- Importer une police différente
- Créer ses propres lettres
ajouter ((11) * (lettre actuelle)) à x
en remplaçant "11" par l'espace nécessaire entre deux caractères.Une fois vos costumes de caractères créés ou importés, il convient de les renommer afin que le dernier caractère du nom du costume corresponde à la lettre.
Script
Première méthode : les clones
Le script crée un clone pour chaque lettre toutes les 0,1 secondes. Cette latence minimum est nécessaire afin d'éviter les erreurs liées à l'utilisation simultanée de la variable (lettre actuelle)
.
quand je reçois [Écrire le texte 1 v] aller à x:(200) y:(-150) mettre [lettre actuelle v] à [0] cacher répéter (longueur de (texte 1)) fois créer un clone de (moi-même v) attendre (0.1) secondes ajouter (1) à [lettre actuelle v] fin
Chaque clone prend son propre costume et se décale sur la scène en fonction de son rang.
quand je commence comme un clone ajouter ((11) * (lettre actuelle)) à x // Modifiez cette valeur en fonction de la taille de vos caractères basculer sur le costume (regrouper [Block-] et (lettre ((lettre actuelle) + (1)) de (texte 1))) // Modifiez cette étape en fonction du nom de vos costumes
supprimer ce clone
avant d’écrire un nouveau texte sans redémarrage du projet, sous peine qu’il ne se superpose !Deuxième méthode : l’estampillage
L’estampillage permet de reproduire en fond d’écran le costume d’un clone. Ici, les lettres VS,t être « imprimées » une à une sur la scène, faisant apparaître le texte.
quand je reçois [Écrire le texte 1 v] aller à x:(200) y:(-150) mettre [lettre actuelle v] à [0] cacher répéter (longueur de (texte 1)) fois basculer sur le costume (regrouper [Block-] et (lettre ((lettre actuelle) + (1)) de (texte 1))) // Modifiez cette étape en fonction du nom de vos costumes estampiller ajouter (1) à [lettre actuelle v] ajouter (11) à x // Modifiez cette valeur en fonction de la taille de vos caractères fin
effacer tout
avant d’écrire le texte, sous peine qu’il ne se superpose !Lancer l’affichage
Avant de lancer l’affichage, il faut penser à initialiser le texte de la variable (texte 1)
avec le bloc mettre [texte 1 v] à [bonjour tout le monde v]
.
Voici le bloc nécessaire pour déclencher l'affichage : envoyer à tous [Écrire le texte 1 v] et attendre
. Si l'on souhaite réaliser d'autres actions simultanément, on peut utiliser le bloc envoyer à tous [Écrire le texte 1 v]
.
Pistes d’améliorations
Voici quelques suggestions pour personnaliser cette méthode selon vos besoins :
- Utiliser une police à chasse variable en ajoutant un script prenant en compte le nom du caractère afin de déterminer sa largeur ;
- Mettre en forme le texte (gras, italique, souligné) ;
- Augmenter volontairement la latence, afin de donner la sensation que le texte "s'écrit" devant l'utilisateur (il faudra penser à ajouter un costume « curseur » par défaut) ;
- Si le texte est trop long pour s'afficher sur une ligne, modifier l'ordonnée au bout d'un certain nombre de caractères ;
- Utiliser des blocs personnalisés afin de diminuer le nombre de variables.