This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Un composant (component) Label affiche une portion de texte à l’écran, dans l’espace de jeu. Par défaut, il est trié et dessiné avec tous les sprites et les éléments graphiques à base de tuiles. Le composant possède un ensemble de propriétés qui déterminent le rendu du texte. L’interface graphique de Defold prend en charge le texte, mais il peut être délicat de placer des éléments d’interface graphique dans le monde de jeu (game world). Les libellés facilitent cette tâche.
Pour créer un composant Label, faites un clic droit sur l’objet de jeu (game object) et sélectionnez Add Component ▸ Label.

(Si vous souhaitez instancier plusieurs libellés à partir du même modèle, vous pouvez aussi créer un nouveau fichier de composant Label : faites un clic droit sur un dossier dans le navigateur Assets et sélectionnez New... ▸ Label, puis ajoutez le fichier en tant que composant aux objets de jeu de votre choix)

Définissez la propriété Font sur la police que vous souhaitez utiliser et veillez à définir la propriété Material sur un matériau correspondant au type de police :

Pour utiliser une police Vector, suivez la configuration des polices vectorielles, affectez la ressource .font à la propriété Font du Label et définissez son Material sur /builtins/fonts/label-vector.material. Utilisez Font Size pour contrôler la taille affichée.
Pour les émojis en couleur, effectuez également la configuration de la police de repli COLRv1 et de sa mise en bundle. L’exemple ci-dessous suppose un Label d’identifiant label et un script sur le même objet de jeu. Laissez le champ Text du Label vide pour n’afficher le message qu’une fois ses glyphes prêts :
function init(self)
local text = "Hello 😀 🍎 🚀"
local font_resource = go.get("#label", "font")
-- Add the fallback once for this shared font resource.
font.add_font(font_resource, "/fonts/NotoColorEmoji-Regular.ttf")
font.prewarm_text(font_resource, text, function(self, request_id, result, err)
if result then
go.set("#label", "text", text)
else
print("Could not prepare label text:", err)
end
end)
end
Les lettres ordinaires utilisent la police d’origine, et les émojis utilisent la police couleur ajoutée. Si d’autres Labels ou nœuds de texte GUI partagent cette ressource de police, initialisez la police de repli à un seul endroit et réutilisez-la.
Outre les propriétés Id, Position, Rotation et Scale, les propriétés suivantes sont propres au composant :
Notez que le rendu de l’ombre est désactivé dans le matériau par défaut pour des raisons de performances.
La propriété Blend Mode définit la façon dont les éléments graphiques du composant (component) doivent être fusionnés avec ceux qui se trouvent derrière lui. Voici les modes de fusion disponibles et leur calcul :
src.a * src.rgb + (1 - src.a) * dst.rgbsrc.rgb + dst.rgbsrc.rgb * dst.rgbsrc.rgb - dst.rgb * dst.rgbLa propriété Pivot vous permet de modifier le mode d’alignement du texte.
Center, North ou South, le texte est centré.West, le texte est aligné à gauche.East, le texte est aligné à droite.
Vous pouvez manipuler les libellés à l’exécution en récupérant et en définissant leur texte ainsi que leurs diverses autres propriétés.
textstring). Accessible avec go.get() et go.set().colorvector4)outlinevector4)shadowvector4)scalenumber pour une mise à l’échelle uniforme, soit un vector3 pour une mise à l’échelle distincte sur chaque axe.sizevector3)function init(self)
-- Set the text of the "my_label" component in the same game object
-- as this script.
go.set("#my_label", "text", "New text")
local text = go.get("#my_label", "text")
print(text) -- New text
end
label.set_text() et label.get_text() sont obsolètes au profit de la propriété text. Les anciennes fonctions restent disponibles pour assurer la compatibilité. L’ancienne fonction d’écriture met un message en file d’attente, tandis que go.set() met le texte à jour immédiatement.
function init(self)
-- Set the color of the "my_label" component in the same game object
-- as this script. Color is a RGBA value stored in a vector4.
local grey = vmath.vector4(0.5, 0.5, 0.5, 1.0)
go.set("#my_label", "color", grey)
-- ...and remove the outline, by setting its alpha to 0...
go.set("#my_label", "outline.w", 0)
-- ...and scale it x2 along x axis.
local scale_x = go.get("#my_label", "scale.x")
go.set("#my_label", "scale.x", scale_x * 2)
end
Le fichier game.project comporte quelques paramètres du projet liés aux libellés.