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
Usa il markup nei componenti Label e nei nodi di testo GUI per applicare stili visivi ed effetti annidati ed esaminare link e sprite da Lua.
go.set("#label", "text", "Score: <color=#69D2E7>1200</color>")
In alternativa, definisci sul font uno stile di oggetto riutilizzabile con nome e selezionalo da un link:
local fontpath = "/fonts/ui.fontc"
font.set_style(fontpath, "menu_link", "<color=#69D2E7>")
go.set("#label", "text", "Open <link style=menu_link src=inventory>inventory</link>")
| Tag | Scopo | Esempio |
|---|---|---|
color |
Imposta il colore di riempimento dei glifi. | ![]() |
size |
Modifica la dimensione dei glifi nella composizione e nel layout. | ![]() |
gradient |
Applica un gradiente di colore statico o animato. | ![]() |
ul |
Sottolinea il testo. | ![]() |
strike |
Barra il testo. | ![]() |
outline |
Imposta spessore e colore del contorno dei glifi. | ![]() |
shadow |
Aggiunge un’ombra al testo. | ![]() |
shake |
Applica uno spostamento casuale animato. | ![]() |
wave |
Muove il testo lungo un’onda sinusoidale animata. | ![]() |
sprite |
Aggiunge un oggetto sprite in linea. | |
link |
Aggiunge un oggetto link interattivo. | ![]() |
I nomi dei tag e degli attributi distinguono tra maiuscole e minuscole. Un tag con apertura e chiusura si applica al testo UTF-32 visibile che contiene. Gli oggetti sprite usano tag a chiusura automatica.
<color=#69D2E7>colored text</color>
<ul pattern=dashed>underlined text</ul>
<outline size=2 color=#000000>outlined text</outline>
<shadow x=2 y=-2 color=#00000080>shadowed text</shadow>
<sprite src=images/icon.png width=2em/>
Gli attributi possono essere scritti senza virgolette se non contengono spazi oppure racchiusi tra virgolette singole o doppie. color e size supportano sia un primo valore abbreviato sia la forma con nome value.
<color=#FF8800>Orange</color>
<color value="#FF8800">Orange</color>
<size='120%'>Larger</size>
I tag devono essere chiusi nell’ordine inverso rispetto a quello di apertura. I valori degli stili interni sovrascrivono la stessa proprietà di uno stile esterno. Le proprietà diverse si combinano. Gli effetti delle porzioni di testo rimangono attivi in modo indipendente: i gradienti annidati moltiplicano i colori e gli effetti di posizione annidati sommano i propri spostamenti.
<color=#FFCC00>
Gold <outline size=2 color=#000000>with a black outline</outline>
</color>
Usa &, ', >, < e " per i caratteri riservati nel testo visibile. Le entità numeriche non sono attualmente supportate.
I tag del testo formattato applicano uno stile a una porzione di testo racchiusa al loro interno oppure descrivono un oggetto che puoi esaminare da Lua. I tag di stile usano un tag di chiusura corrispondente. L’oggetto sprite è a chiusura automatica, mentre link racchiude il testo del collegamento.
color
Imposta il colore di riempimento dei glifi. I colori usano #RRGGBB o #RRGGBBAA. Il prefisso cancelletto è obbligatorio; 0xFF0000 e FF0000 non sono validi. Il risultato moltiplica il colore di base dell’etichetta o del renderer.
| Attributo | Obbligatorio | Valore predefinito | Significato |
|---|---|---|---|
=color o value=color |
Sì | Nessun valore predefinito | Colore di riempimento in formato esadecimale RGB o RGBA. |
<color=#00FF00>Opaque green</color>
<color=#00FF0080>Half-alpha green</color>
#00FF00

#00FF0080

size
Modifica la dimensione dei glifi nella composizione e nel layout, non soltanto la scala dei vertici. I valori relativi usano sempre la dimensione di base del font del layout. Non si moltiplicano con un tag size esterno.
| Attributo | Obbligatorio | Valore predefinito | Significato |
|---|---|---|---|
=size o value=size |
Sì | Nessun valore predefinito | Dimensione assoluta, percentuale, multiplo della dimensione di base oppure scostamento con segno dalla dimensione di base, usando una delle forme seguenti. |
| Forma | Esempio con 32 px | Dimensione risultante |
|---|---|---|
Numero senza unità o px |
24, 24px |
24 px |
| Percentuale della dimensione di base | 120% |
38.4 px |
| Multiplo della dimensione di base | 2em |
64 px |
| Scostamento con segno dalla dimensione di base | +4, -4 |
36 px, 28 px |
<size=24px>Exactly 24 pixels</size>
<size=120%>120% of the layout base size</size>
<size=2em>Twice the layout base size</size>
24px

120% di 32px

2em di 32px

gradient
Un gradiente accetta esattamente un insieme completo di attributi. Combinare insiemi diversi oppure omettere un membro non è valido.
| Modalità | Attributi obbligatori | Interpolazione |
|---|---|---|
| Orizzontale | left, right |
Interpola tra i due colori orizzontali. |
| Verticale | bottom, top |
Interpola tra i colori inferiore e superiore. |
| Quattro angoli | tl, tr, bl, br |
Interpola tra i colori dei quattro vertici. |
| Attributo | Obbligatorio | Valore predefinito | Significato |
|---|---|---|---|
left, right |
Per la modalità orizzontale | Nessuno | Colori degli estremi orizzontali in formato #RRGGBB o #RRGGBBAA. Devono essere entrambi presenti. |
bottom, top |
Per la modalità verticale | Nessuno | Colori degli estremi verticali. Devono essere entrambi presenti. |
tl, tr, bl, br |
Per la modalità a quattro angoli | Nessuno | Colori in alto a sinistra, in alto a destra, in basso a sinistra e in basso a destra. Devono essere tutti e quattro presenti. |
fit |
No | span |
glyph campiona ogni posizione del testo composto; span distribuisce il gradiente sull’intero testo racchiuso nel tag. |
hz |
No | 0 |
Cicli completi di scorrimento al secondo nell’intervallo [0,); zero mantiene statico il gradiente. |
direction |
No | forward |
forward o reverse. Controlla la direzione dello scorrimento quando hz è diverso da zero. |
Quando fit è omesso, fit=span distribuisce il gradiente sull’intero testo racchiuso nel tag. fit=glyph campiona ogni posizione del testo composto in modo indipendente. L’attributo facoltativo hz specifica il numero di cicli completi di animazione dello scorrimento al secondo; il suo valore predefinito di zero mantiene statico il gradiente. La rampa di colori speculare e ripetuta scorre in modo continuo e ricomincia senza salti di colore. direction=forward è il valore predefinito; usa direction=reverse per invertire lo scorrimento.
<gradient left=#FF00FF right=#FFFFFF>Horizontal Gradient</gradient>
<gradient hz=0.25 fit=glyph bottom=#182848 top=#4B6CB7>Animated vertical glyphs</gradient>
<gradient hz=0.25 direction=reverse left=#FF0000 right=#0000FF>Reverse flow</gradient>
<gradient hz=0.25 direction=reverse fit=span left=#FF0000 right=#0000FF>One animated span color</gradient>
<gradient fit=glyph tl=#FF0000 tr=#00FF00 bl=#0000FF br=#FFFFFF>
Four corners
</gradient>
Orizzontale

Verticale

Quattro angoli
fit=glyph

fit=span

Animato
fit=glyph

fit=span

I colori del gradiente moltiplicano il colore di riempimento corrente. Un gradiente all’interno di color=#808080 non può quindi produrre un canale più luminoso di quel moltiplicatore di base.
ul
Disegna una sottolineatura usando le metriche di sottolineatura del font, quando disponibili. Il tag non ha un colore indipendente: la linea eredita il colore di riempimento effettivo, inclusi i gradienti orizzontali, verticali e a quattro angoli.
| Attributo | Obbligatorio | Valore predefinito | Significato |
|---|---|---|---|
pattern |
No | solid |
solid o dashed. |
<ul>Solid underline</ul>
<ul pattern=dashed>Dashed underline</ul>
<ul><gradient left=#FF00FF right=#FFFFFF>Gradient line</gradient></ul>
Continua

Tratteggiata

Gradiente

strike
Disegna una linea che barra il testo racchiuso nel tag. Accetta gli stessi valori di pattern di ul e ne eredita allo stesso modo il colore di riempimento effettivo.
| Attributo | Obbligatorio | Valore predefinito | Significato |
|---|---|---|---|
pattern |
No | solid |
solid o dashed. |
<strike>No longer available</strike>
<strike pattern=dashed>Dashed strikethrough</strike>
Continua

Tratteggiata

outline
Imposta lo spessore del contorno, il suo colore o entrambi. È richiesto almeno un attributo. Uno spessore pari a zero disabilita esplicitamente il contorno per la porzione di testo.
| Attributo | Obbligatorio | Valore predefinito | Significato |
|---|---|---|---|
size |
Uno tra size/color | Ereditato; 0 in un font predefinito |
Spessore in unità di layout, intervallo [0,). Non sono accettati suffissi di unità. |
color |
Uno tra size/color | Ereditato; #000000 in un’etichetta predefinita |
Unico colore del contorno in formato esadecimale RGB (#RRGGBB) o RGBA (#RRGGBBAA); la componente alfa controlla l’opacità. |
<outline size=3 color=#000000>Black outline</outline>
<outline color=#FF0000>Keep inherited width, change color</outline>
<outline size=0>Disable inherited outline</outline>
Contorno nero esterno

shadow
Aggiunge un’ombra dai bordi netti al testo racchiuso nel tag. È richiesto almeno un attributo. Gli attributi omessi da un tag annidato conservano il valore dell’ombra esterna; quelli omessi dal tag più esterno conservano il valore di base dell’ombra del font.
| Attributo | Obbligatorio | Valore predefinito | Significato |
|---|---|---|---|
color |
No | Ereditato; #000000 in un’etichetta predefinita |
Colore dell’ombra in formato #RRGGBB o #RRGGBBAA. |
x |
No | Ereditato; 0 in un font predefinito |
Spostamento orizzontale dell’ombra in unità di layout. I valori positivi la spostano a destra. |
y |
No | Ereditato; 0 in un font predefinito |
Spostamento verticale dell’ombra in unità di layout. I valori positivi la spostano verso l’alto. |
blur |
No | Ereditato; 0 in un font predefinito |
Raggio di sfocatura in unità di layout, intervallo [0,). |
<shadow x=6 y=-6 blur=4 color=#000000A0>Shadow</shadow>
<shadow x=-2>Override only the horizontal offset</shadow>
x=6, y=-6, blur=4

La sfocatura dell’ombra viene generata e memorizzata nell’atlas dei glifi. Una porzione di testo può richiedere una sfocatura inferiore a quella precalcolata del font; i valori maggiori vengono conservati nel layout, ma attualmente sono renderizzati usando la massima sfocatura disponibile nell’atlas.
shake
Applica uno spostamento casuale animato deterministico senza modificare gli a capo o i limiti del layout. L’effetto tiene traccia del tempo internamente; gli script non devono modificare il testo dell’etichetta a ogni fotogramma dell’animazione.
| Attributo | Obbligatorio | Valore predefinito | Valori validi | Significato |
|---|---|---|---|---|
hz |
No | 20 | [0,) |
Transizioni verso posizioni casuali al secondo. Zero mette in pausa l’effetto. |
amplitude |
No | 0.5 | [0,) |
Spostamento massimo in unità di layout. |
fit |
No | glyph |
glyph o span |
glyph campiona uno spostamento per ogni unità di glifo composta, senza separare i gruppi di caratteri. span muove l’intera porzione di testo racchiusa nel tag come un’unica unità rigida. |
<shake>Default shake</shake>
<shake hz=12 amplitude=0.8 fit=glyph>Glyph shake</shake>
<shake hz=12 amplitude=0.8 fit=span>Rigid span shake</shake>
fit=glyph

fit=span

wave
Muove i caratteri verso l’alto e il basso lungo un’onda sinusoidale animata senza modificare gli a capo o i limiti del layout. Il layout accumula il tempo di animazione quando viene aggiornato.
| Attributo | Obbligatorio | Valore predefinito | Significato |
|---|---|---|---|
amplitude |
No | 1 | Spostamento verticale massimo in unità di layout, intervallo [0,). |
hz |
No | 1 | Cicli temporali completi al secondo, intervallo [0,). Zero mette in pausa l’onda. |
wavelength |
No | 6 | Posizioni del testo UTF-32 visibile per ogni ciclo spaziale completo, intervallo [1,). I caratteri che il font compone insieme, come un carattere di base e il suo accento combinante, si muovono come un’unica unità. |
fit |
No | glyph |
glyph applica l’onda spaziale lungo il testo. span assegna all’intera porzione di testo racchiusa nel tag un unico spostamento sinusoidale verticale condiviso. |
direction |
No | forward |
forward avanza normalmente. reverse inverte la direzione di propagazione dell’onda. |
<wave>Animated character wave</wave>
<wave amplitude=4 hz=3 wavelength=8 fit=glyph>Travelling wave</wave>
<wave amplitude=4 hz=3 wavelength=8 fit=glyph direction=reverse>Reverse travelling wave</wave>
<wave amplitude=4 hz=1 fit=span>Whole span moves together</wave>
fit=glyph

fit=span

sprite
Aggiunge un oggetto sprite a chiusura automatica nella posizione corrente del testo visibile. I suoi attributi vengono conservati come metadati per label.get_layout_objects() e gui.get_layout_objects().
| Attributo | Obbligatorio | Valore predefinito | Significato |
|---|---|---|---|
id |
No | Generato | Identificatore stabile trasformato in hash nel campo id dell’oggetto di layout restituito. |
src |
No | Nessuno | Identificatore della risorsa sprite definito dall’applicazione, come il percorso di un’immagine o di un atlas nel progetto. |
animation |
No | Nessuno | Identificatore di animazione all’interno della risorsa definito dall’applicazione. |
width |
No | 1em |
Larghezza risultante dello sprite. |
height |
No | 1em |
Altezza risultante dello sprite. |
| Qualsiasi altro attributo | No | Assente | Metadati definiti dall’applicazione e conservati per il risolutore degli oggetti e le API degli oggetti di layout. |
A <sprite src=engine/engine/content/builtins/assets/images/logo/logo_256.png/> logo
<sprite src=images/banner.png width=4em height=2em/>
<sprite src=images/icons.atlas animation=coin width=2em/>
Sprite in linea risolto
![]()
Le dimensioni accettano valori positivi in unità di layout senza suffisso, px, em o %. Sia em sia % usano la dimensione di base del font del layout del testo.
Ogni dimensione mancante assume indipendentemente il valore predefinito 1em. Omettendole entrambe si ottiene un oggetto 1em × 1em; specificare soltanto la larghezza non ricava automaticamente l’altezza dalle proporzioni della risorsa.
Il tag sprite è soltanto un segnaposto che permette allo sviluppatore di inserire un oggetto qualsiasi in quella posizione!
link
Descrive un intervallo di testo visibile come oggetto link. Il testo racchiuso viene disposto normalmente e riceve per impostazione predefinita lo stile con nome link. I componenti Label e GUI selezionano link:hover e link:active in risposta all’input senza ricomporre il testo. Consulta Messaggi di interazione per i messaggi prodotti dall’input sui link.
| Attributo | Obbligatorio | Valore predefinito | Significato |
|---|---|---|---|
src |
No | Nessuno | Destinazione del link definita dall’applicazione. Il valore viene restituito come stringa senza convalida o navigazione automatica. |
id |
No | Generato | Identificatore stabile trasformato in hash nel campo id dell’oggetto di layout restituito. |
style |
No | link |
Stile predefinito con nome per il testo del link. |
| Qualsiasi altro attributo | No | Assente | Metadati definiti dall’applicazione, come un identificatore, un’azione, un suggerimento o un valore per l’analisi dell’utilizzo. |
<ul><link id=website src=https://www.defold.com>www.defold.com</link></ul>
<link id=inventory style=menu_link action=open_inventory item=sword>Iron sword</link>
style=link

Il componente tiene traccia dello stato del puntatore per ogni link. Applica link:hover mentre il puntatore è sopra il link e link:active mentre il pulsante del puntatore è premuto. Quando nessuno dei due stati è attivo, il componente ripristina lo stile indicato dall’attributo style del link, oppure link se l’attributo è assente.
L’interazione con i link usa il normale sistema di input di Defold. Aggiungi un binding Mouse Trigger per MOUSE_BUTTON_LEFT, che abilita anche l’input a tocco singolo, e acquisisci il focus dell’input nello script dell’oggetto di gioco o nello script GUI:
function init(self)
msg.post(".", "acquire_input_focus")
end
Consulta Focus dell’input e Input da mouse e tocco per i dettagli della configurazione.
Quando un componente etichetta o GUI riceve input dal puntatore, i link producono i messaggi seguenti. I messaggi delle etichette vengono inviati all’oggetto di gioco a cui appartengono; i messaggi GUI vengono inviati allo script GUI.
| Messaggio | Quando viene inviato |
|---|---|
text_object_hovered |
Il puntatore entra in un link. |
text_object_unhovered |
Il puntatore esce da un link. |
text_object_clicked |
Il pulsante viene rilasciato sopra lo stesso link su cui è stato premuto. |
Ogni messaggio contiene questi campi:
| Campo | Tipo | Descrizione |
|---|---|---|
id |
hash |
L’attributo id dell’oggetto oppure il suo ID generato di oggetto di layout. |
type |
hash |
Il tipo dell’oggetto di layout, attualmente hash("link"). |
src |
string |
Il valore definito dall’applicazione per l’attributo src dell’oggetto, oppure una stringa vuota se assente. |
function on_message(self, message_id, message)
if message_id == hash("text_object_clicked") then
assert(message.type == hash("link"))
print(message.id, message.src)
end
end
Ogni collezione di font contiene stili di oggetto con nome che influiscono soltanto sul rendering. Un link usa lo stile indicato dal suo attributo style, oppure link se l’attributo è assente. Non esiste un tag generico <style> per le porzioni di testo.
Defold fornisce i seguenti valori predefiniti:
| Stile | Moltiplicatore del colore di riempimento | Decorazione |
|---|---|---|
link |
(0.10, 0.45, 0.90, 1.0) |
Sottolineatura continua |
link:hover |
(0.30, 0.65, 1.00, 1.0) |
Nessuna |
link:active |
(0.05, 0.30, 0.70, 1.0) |
Nessuna |
Definisci uno stile con una stringa di testo contenente tag di apertura. I tag vengono chiusi implicitamente nell’ordine inverso, quindi non sono consentiti tag di chiusura né testo visibile.
font.set_style("/fonts/ui.fontc", "link",
"<color=#2673ff><outline color=#000000 size=1>")
font.set_style("/fonts/ui.fontc", "link:hover",
"<color=#66b3ff><shake amplitude=0.2 hz=20>")
I tag vengono applicati da sinistra a destra, come se fossero annidati attorno al testo dell’oggetto. Uno stile di oggetto selezionato dal chiamante viene applicato dopo lo stile predefinito. Quando più tag impostano la stessa proprietà di rendering, il valore applicato per ultimo sovrascrive quelli precedenti. Gli effetti vengono aggiunti nell’ordine da sinistra a destra.
Chiamare font.set_style() sostituisce le proprietà di rendering e gli effetti di quello stile con nome. Le decorazioni definite dalla risorsa rimangono invariate, quindi ridefinire link non rimuove la sua sottolineatura predefinita. Gli stili con nome accettano tag che influiscono soltanto sul rendering, come color, outline, shadow, gradient, wave e shake. I tag che modificano il layout, quelli di decorazione e quelli di oggetto vengono rifiutati.
Usa label.get_layout_objects() o gui.get_layout_objects() per recuperare gli oggetti sprite e link dal testo già disposto nel layout.
label.get_layout_objects()
objects = label.get_layout_objects(url)
| Argomento | Tipo | Descrizione |
|---|---|---|
url |
string, hash o url |
Il componente etichetta da esaminare, per esempio "#label". |
gui.get_layout_objects()
objects = gui.get_layout_objects(node)
| Argomento | Tipo | Descrizione |
|---|---|---|
node |
node |
Il nodo di testo GUI da esaminare, per esempio gui.get_node("rich_text"). |
Entrambe le funzioni restituiscono un array appena creato che contiene gli oggetti di layout correnti nell’ordine del sorgente. Restituiscono un array vuoto quando il testo non contiene tag di oggetto. Poiché gli oggetti e i loro attributi vengono copiati in Lua a ogni chiamata, conserva il risultato in cache e ripeti la richiesta dopo aver modificato il testo o un’altra proprietà che ne cambia il layout.
| Campo | Tipo | Descrizione |
|---|---|---|
type |
string |
"sprite" o "link". |
id |
hash |
Identificatore dell’oggetto usato nei messaggi di interazione. |
text_offset |
number |
Posizione nel testo visibile, con indice a partire da zero, misurata in punti di codice Unicode. Il markup è escluso e le entità contano come i caratteri decodificati. Per uno sprite, è il suo punto di inserimento. |
text_length |
number |
Lunghezza del testo visibile racchiuso nel tag in punti di codice Unicode. Uno sprite ha lunghezza uno per il punto di codice U+FFFC di sostituzione dell’oggetto che viene inserito. |
width |
number |
Larghezza risultante in unità di layout del testo. Attualmente i link hanno larghezza zero. |
height |
number |
Altezza risultante in unità di layout del testo. Attualmente i link hanno altezza zero. |
x |
number |
Posizione orizzontale dell’angolo inferiore sinistro dell’oggetto rispetto all’origine superiore sinistra del layout del testo. |
y |
number |
Posizione verticale dell’angolo inferiore sinistro dell’oggetto rispetto all’origine superiore sinistra del layout del testo. |
attributes |
table |
Tutti gli attributi dei tag come coppie chiave/valore di tipo stringa. I valori degli attributi conservano la rappresentazione sorgente, come "2em". Un valore abbreviato senza nome viene memorizzato sotto la chiave value. |
text_offset e text_length non sono offset in byte UTF-8. Un carattere non ASCII come å o 猫 conta come una posizione.
local text = [[
Read the <link src=https://defold.com/manuals/ id=manual>manual</link>
or inspect <sprite src=images/info.png width=2em/> for more information.
]]
go.set("#label", "text", text)
local objects = label.get_layout_objects("#label")
for _, object in ipairs(objects) do
if object.type == "link" then
print("link", object.attributes.src)
print("visible range", object.text_offset, object.text_length)
print("position", object.x, object.y)
elseif object.type == "sprite" then
print("sprite", object.x, object.y, object.width, object.height)
pprint(object.attributes)
end
end
local gui_objects = gui.get_layout_objects(gui.get_node("rich_text"))
<outline size=2 color=#101820>
<gradient left=#FEE715 right=#FF6F61>Gradient title</gradient>
</outline>
Il gradiente moltiplica soltanto il colore di riempimento; il contorno mantiene il proprio colore.
<shake hz=20 amplitude=0.5>
This <gradient left=#FF00FF right=#FFFFFF>whole</gradient> text shakes!
</shake>
L’effetto di posizione esterno si applica a ogni glifo. L’effetto di colore annidato si applica soltanto a “whole”.
<color=#FFFFFF><outline size=2 color=#000000>
Normal <color=#FF4040>warning</color> normal
</outline></color>
Il colore interno cambia il riempimento mantenendo lo spessore e il colore del contorno ereditati.