BBCode dans RichTextLabel¶
Introduction¶
Les nœuds Label sont parfaits pour afficher du texte basique, mais ils ont des limites. Si vous voulez changer la couleur du texte, ou son alignement, ce changement affecte tout le texte du nœud Label. Vous ne pouvez pas avoir une seule partie du texte en une seule couleur, ou une seule partie du texte centrée. Pour contourner cette limitation, vous utiliserez un RichTextLabel.
RichTextLabel permet l'affichage de balises de texte complexes dans un Control. Il possède une API intégrée pour générer le balisage, mais peut également analyser un BBCode.
Notez que les balises BBCode peuvent également être utilisées, dans une certaine mesure, dans XML source of the class reference.
Utilisation de BBCode¶
Pour un texte formaté uniformément, vous pouvez écrire dans la propriété "Text", mais si vous voulez utiliser le balisage BBCode, vous devez utiliser la propriété "Text" dans la section "Bb Code" à la place (bbcode_text
). L'écriture dans cette propriété déclenchera l'analyse de votre balisage pour formater le texte comme demandé. Avant que cela n'arrive, vous devez cocher la case "Enabled" dans la section "Bb Code" (bbcode_enabled
).

Par exemple, BBCode [color=blue]blue[/color]
rendrait le mot "blue" avec une couleur bleue.

Vous remarquerez qu'après avoir écrit dans la propriété "Text" du BBCode, la propriété "Text" normale a maintenant le texte sans le BBCode. Bien que la propriété de texte soit mise à jour par la propriété BBCode, vous ne pouvez pas modifier la propriété de texte ou vous perdrez le balisage BBCode. Toutes les modifications du texte doivent être effectuées dans le paramètre BBCode.
Note
Pour que les balises BBCode telles que [b]
(gras) ou [i]
(italique) fonctionnent, vous devez d'abord configurer des polices personnalisées pour le nœud RichTextLabel.
Il n'y a pas encore de balises BBCode pour contrôler le centrage vertical du texte.
Référence¶
Commande |
Balise |
Description |
gras |
|
Met le {texte} en gras. |
italique |
|
Met le {texte} italique. |
souligné |
|
Met le {texte} en souligné. |
barré |
|
Barre le {texte}. |
code |
|
Fait utiliser la police du code (qui est généralement monospace) pour le {texte}. |
centré |
|
Centre le {texte} horizontalement. |
droite |
|
Aligne le {texte} horizontalement à droite. |
remplir |
|
Remplit la largeur du RichTextLabel avec le {texte}. |
indenter |
|
Augmente le niveau d’indentation du {texte}. |
url |
|
Affiche {url} en tant que tel, le souligne et le rend cliquable. Doit être géré avec le signal "meta_clicked" pour avoir un effet. Voir Gestion des clics de la balise [url]. |
url (ref) |
|
Rend la référence {text} <url> (soulignée et cliquable). Doit être géré avec le signal "meta_clicked" pour avoir un effet. Voir Gestion des clics de la balise [url]. |
image |
|
Insère l’image ayant {chemin} pour chemin de ressource. |
image redimensionnée |
|
Insérer l'image à la ressource {path} en utilisant <width> (conserve le ratio). |
image redimensionnée |
|
Insère l'image à la ressource {path} en utilisant <width>×<height>. |
police |
|
Utilise une police personnalisée située à un <chemin> de ressource, pour le {texte}. |
couleur |
|
Change la couleur du {texte} ; utilise un nom ou le format #, tel que |
table |
|
Crée une table avec un <nombre> de colonnes. |
cell |
|
Ajoute des cellules avec le {texte} à la table. |
Noms de couleurs prédéfinies¶
Liste de noms de couleurs validespour le tag [color=<nom>] :
aqua
black
blue
fuchsia
gray
green
lime
maroon
navy
purple
red
silver
teal
blanc
yellow
Codes de couleur héxadécimaux¶
Pour les couleurs RVB opaques, tout code hexadécimal valide à 6 chiffres est pris en charge, par exemple [color=#ffffff]white[/color]
. Les codes couleur RVB courts tels que #6f2
(équivalent à #66ff22
) sont également pris en charge.
Pour les couleurs RVB transparentes, tout code hexadécimal à 8 chiffres peut être utilisé, par exemple [color=#88ffffff]translucent white[/color]
. Dans ce cas, notez que le canal alpha est le premier composant du code couleur, et non le dernier. Les codes couleur RGBA courts tels que #86f2
(équivalent à #8866ff22
) sont également pris en charge.
Gestion des clics de la balise [url]
¶
Par défaut, les balises [url]
ne font rien lorsqu'on clique dessus. Ceci afin de permettre une utilisation flexible des balises [url]
plutôt que de les limiter à l'ouverture des URL dans un navigateur Web.
Pour gérer les balises [url]
cliquées, connectez le signal meta_clicked du nœud RichTextLabel à une fonction de script.
Par exemple, la méthode suivante peut être connectée à meta_clicked
pour ouvrir les URL cliquées à l'aide du navigateur web par défaut de l'utilisateur :
# This assumes RichTextLabel's `meta_clicked` signal was connected to
# the function below using the signal connection dialog.
func _richtextlabel_on_meta_clicked(meta):
# `meta` is not guaranteed to be a String, so convert it to a String
# to avoid script errors at run-time.
OS.shell_open(str(meta))
Pour des cas d'utilisation plus avancés, il est également possible de stocker JSON dans une option de balise [url]
et de l'analyser dans la fonction qui gère le signal meta_clicked
. Par exemple : [url={"example": "value"}]JSON[/url]
Décalage vertical de l'image¶
Vous utilisez une police personnalisée pour votre image afin de l'aligner verticalement.
Créer une ressource
BitmapFont
Définissez cette police bitmap avec une valeur positive pour la propriété
ascent
, c'est votre décalage de hauteurDéfinir la balise BBCode de cette façon :
[font=<font-path>][img]{image-path}[/img][/font]
Effets d'animation¶
Le BBCode peut également être utilisé pour créer différents effets d'animation de texte. Cinq effets personnalisables sont fournis dès le départ, et vous pouvez facilement créer les vôtres.
Vague¶

Wave fait monter et descendre le texte. Son format de balise est [wave amp=50 freq=2][/wave]
. amp
contrôle le niveau de l'effet, et freq
contrôle la vitesse à laquelle le texte monte et descend.
Tornade¶

Tornade fait bouger le texte en cercle. Son format de balise est [tornado radius=5 freq=2][/tornado]
. radius
est le rayon du cercle qui contrôle le décalage, freq
est la vitesse à laquelle le texte se déplace en cercle.
Tremblement¶

Le tremblement fait trembler le texte. Son format de balise est [shake rate=5 level=10][/shake]
. rate
contrôle la vitesse à laquelle le texte s'agite, level
contrôle la distance entre le texte et l'origine.
Fondu¶

Fondu crée un effet de fondu sur le texte qui n'est pas animé. Son format de balise est [fade start=4 length=14][/fade]
. start
contrôle la position de départ du fondu par rapport à l'endroit où la commande de fondu est insérée, length
contrôle le nombre de caractères que le fondu doit contenir.
Arc-en-ciel¶

Arc-en-ciel donne au texte une couleur arc-en-ciel qui change au fil du temps. Son format de balise est [rainbow freq=0.2 sat=10 val=20][/rainbow]
. freq
est le nombre de cycles complets de l'arc-en-ciel par seconde, sat
est la saturation de l'arc-en-ciel, val
est la valeur de l'arc-en-ciel.