Source: Scratch Wiki en français


Afficher un texte


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
Info
 Info :
Ce tutoriel est adapté pour la police Block de Scratch, avec une taille de 20%. Si les caractères sont de taille différente, il faudra modifier le bloc 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.

Idée
 Idée :
Si vous avez plusieurs polices, indiquez le nom de la police puis le caractère en séparant d'un tiret (par exemple, "Block-h" pour la lettre h de la police Block).
Attention
 Attention :
Le champ texte est sensible à la casse, aux espaces, aux accents et aux caractères spéciaux. Il convient de créer un costume pour chaque type de caractère, sous peine que le costume manquant soit remplacé par le dernier costume de la liste des costumes.
Attention
 Attention :
Ce tutoriel explique comment afficher un texte avec une police à chasse fixe. Pour une police à chasse variable, il convient d’adapter la largeur à celle de chaque caractère.

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
Attention
 Attention :
La suppression des clones est automatique à l’utilisation du drapeau vert ; toutefois il convient d’utiliser le bloc 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
Attention
 Attention :
Il convient d’utiliser le bloc 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.

Voir aussi

Cet article fait partie de la catégorie des tutos
Tous les articles de cette catégorie :