gohud

Tre livelli

← Temi

Un preset li raggruppa tutti e tre. I campi che lasci vuoti ricadono sui valori predefiniti.

LivelloDecideCome lo cambi
Theme Colori, dimensioni, scala del testo e la forma di tutto ciò che disegna il motore — pannelli dei pulsanti, campi di inserimento, schede, grafica degli interruttori Scrivi un .tres, oppure generane uno con tools/make_theme.py
GoSkin La forma di tutto ciò che disegna il codice — il joystick, le facce degli slot rapidi, l'anello del coach mark, i chip, gli scheletri, i divisori, le intestazioni di sezione Estendila e sovrascrivi solo i metodi che ti interessano
GoIconSet Icone per nome — 84 disegni di default, oppure i 16 disegni incisi del set medievale sopra di essi. Un pacchetto di texture o un font di icone; il codice chiamante è identico in entrambi i casi Fornisci un set, oppure sovrascrivi solo qualche nome
Perché un Theme da solo non basta. Arrotondato è l'unico angolo che StyleBoxFlat conosce — porta il raggio a zero e ottieni un angolo retto; in mezzo non c'è nulla. Angoli tagliati in diagonale, un singolo bordo ispessito, un bagliore esterno: il motore non ne disegna nessuno. E il joystick e il coach mark sono disegnati in _draw(), dove un tema non arriva affatto.

Sceglierne uno

GoUi.use_preset(GoThemePresets.SCIFI_DARK)

Quella riga sola cambia tema, skin e icone. Dall'editor usa Project Settings → Gohud → Theme → Preset; da una risorsa di impostazioni, GoConfig.preset.

Tenere un campo tuo

GoUi.use_preset(GoThemePresets.SCIFI_DARK)
GoUi.config.icons = my_icons     # le tue icone, tutto il resto del preset

Valorizzare esplicitamente theme, skin o icons ha la precedenza sul preset.

I quattordici preset inclusi

PresetPannelliSkin · icone
default_dark · default_lightPannelli StyleBoxFlat arrotondati su una scala graduata di ombre; i pulsanti primari si sollevano e affondano quando vengono premutiGoSkin · 84 icone di default
scifi_dark · scifi_lightPannelli GoStyleBoxCut smussati con bordo al neon e bagliore; segni di focus GoStyleBoxBracketGoSkinSciFi — joystick esagonale · icone di default
medieval_dark · medieval_lightCornici forgiate GoStyleBoxMedieval — ferro e cuoio, oppure pergamena — con rivetti e ornamenti angolari sui menuGoSkinMedieval · 16 icone incise sopra quelle di default
material_light · material_dark NuovoMaterial 3 Expressive per le schermate delle app — pulsanti a pillola da 40dp nell'area di tocco da 48dp, finestre di dialogo da 28dp, schede piene, campi con contorno, lo slider Expressive; i componenti per app (barra di navigazione, barra superiore, FAB, barra di ricerca, chip, avanzamento, selettore di data) seguono i token dei componenti M3GoSkinMaterial · icone di default
kids_light · kids_dark NuovoPer bambini — la scatola dei giocattoli: contorni spessi e un bordo pieno sotto ogni tasto, che affonda quando lo premi; campi di testo incavati, schede a bolla, barre di gelatina; ogni tipo di controllo nel suo colore pastello, slot rapidi come caramelle, badge adesivi, un joystick arcobaleno e grafici colorati. Le dimensioni e il font del progetto restano gli stessi.GoSkinKids · icone di default
arcade_light · arcade_dark NuovoUn cabinato da sala giochi disegnato da GoStyleBoxArcade: ogni tasto dipinto con una sfumatura dall'alto in basso, un riflesso bianco e un bordo che affonda quando lo premi, dentro un contorno d'inchiostro blu notte, con l'etichetta bianca e un contorno d'inchiostro — primario verde, tasti blu, pericolo rosso, tasti piccoli lavanda. Plance spesse con una cornice colorata attorno a un fondo chiaro; una fascia del titolo dorata e un tasto di chiusura tondo e rosso sulle finestre.GoSkinArcade · icone di default
comic_light · comic_dark NuovoVignette a fumetti disegnate da GoStyleBoxComic: un contorno d'inchiostro spesso e un'ombra netta su ogni superficie, che sparisce quando la premi; interruttori, caselle di spunta e maniglie degli slider inchiostrati, una didascalia del titolo gialla sulle finestre. Lo spessore del contorno, la dimensione dell'ombra e la presenza o meno delle ombre sono impostazioni di GoConfig.GoSkinComic · icone di default

Tutti e quattordici, fianco a fianco

La stessa schermata della galleria, cambiando solo il nome del preset — non cambia nemmeno una riga del codice dei widget. Ogni immagine è un telefono tenuto in verticale, 390×844.

La galleria dei widget gohud con il preset default_dark
default_dark
La galleria dei widget gohud con il preset default_light
default_light
La galleria dei widget gohud con il preset scifi_dark
scifi_dark
La galleria dei widget gohud con il preset scifi_light
scifi_light
La galleria dei widget gohud con il preset medieval_dark
medieval_dark
La galleria dei widget gohud con il preset medieval_light
medieval_light
La galleria dei widget gohud con il preset material_light
material_light
La galleria dei widget gohud con il preset material_dark
material_dark
La galleria dei widget gohud con il preset kids_light
kids_light
La galleria dei widget gohud con il preset kids_dark
kids_dark
La galleria dei widget gohud con il preset comic_light
comic_light
La galleria dei widget gohud con il preset comic_dark
comic_dark
La galleria dei widget gohud con il preset arcade_light
arcade_light
La galleria dei widget gohud con il preset arcade_dark
arcade_dark

Medievale: ferro, cuoio e pergamena

medieval_dark accosta ferro e cuoio scuri all'oro antico. medieval_light usa pergamena e inchiostro. Entrambi usano GoSkinMedieval, i widget già esistenti e 16 icone originali con dettagli di incisione; le icone di navigazione ricadono sul set originale.

GoUi.use_preset(GoThemePresets.MEDIEVAL_DARK)
# Oppure: GoUi.use_preset(GoThemePresets.MEDIEVAL_LIGHT)

Scegli il preset prima di creare la UI. Le sovrascritture esplicite di GoConfig.theme, skin o icons restano comunque prioritarie. Apri res://addons/gohud/examples/medieval/medieval.tscn e premi F6 per una scheda personaggio, una bisaccia e un diario delle missioni funzionanti. I suoi pulsanti cambiano variante e aprono il dettaglio degli oggetti.

Interfacce di personaggio, inventario e missioni nella variante Ferro medievale
Ferro e cuoio
Interfacce di personaggio, inventario e missioni nella variante Pergamena medievale
Pergamena e inchiostro

Le cornici dei menu hanno un rivetto e un piccolo ornamento angolare; l'HUD sempre visibile mantiene un bordo sobrio. Salute, mana e vigore usano riempimenti rosso, blu e oliva. Cinzel è limitato a titoli e sottotitoli; il testo del corpo mantiene il font del progetto ospite o quello predefinito. Il font incluso porta con sé la propria licenza in assets/fonts/cinzel/OFL.txt.

Il set inciso ridisegna bag, book, box, coin, crown, flag, heart, key, map, potion, shield, star, sword e user, e aggiunge scroll e seal. Ogni altro nome ricade sul set di default, così close e settings mantengono i loro disegni predefiniti in ogni preset. Cinzel copre l'alfabeto latino; assegna alle intestazioni localizzate un font dedicato tramite shape.fonts.

Che cosa la suite verifica per entrambe le varianti. La skin medievale è selezionata; i pannelli di menu e HUD sono cornici forgiate, con l'ornamento solo sui menu; i titoli usano Cinzel mentre il testo del corpo mantiene il font ereditato; le icone incise vengono importate come DPITexture; uno slot rapido reale usa la skin; cambiare le manopole di una skin copiata arriva fino allo slot senza toccare il preset; e tornando indietro si ripristinano le geometrie default e sci-fi.

Costruisci un regno tutto tuo

python3 addons/gohud/tools/new_theme.py kingdom --from medieval_dark
# Modifica themes/palettes/kingdom.json, poi:
python3 addons/gohud/tools/make_theme.py kingdom
godot --headless --path . --import
# In GDScript, prima di creare i widget:
GoUi.use_preset(&"kingdom")

I temi JSON possono ereditare da altri temi JSON. I valori omessi mantengono le impostazioni del genitore; l'ereditarietà circolare viene rifiutata. Il preset generato conserva il set di icone del genitore.

ImpostazioneEffetto
shape.material0: ferro · 1: cuoio · 2: pergamena. Controlla i segni sulla superficie.
shape.grain_alphaOpacità della trama. Usa 0 per una superficie pulita.
shape.ornament_scale · shape.bevel_strengthDimensione dell'ornamento angolare dei menu e intensità della luce di bisello.
shape.fontsAssocia i ruoli titolo, sottotitolo, didascalia, corpo e pulsante a file di font res:// locali all'add-on. I ruoli omessi mantengono il font ereditato.
skin.dialsRaggio degli slot rapidi, visibilità dei rivetti, grana e luce. La tabella completa qui sotto elenca ogni manopola.

Material 3: un aspetto per le schermate delle app Nuovo

material_light e material_dark portano Material 3 Expressive in gohud — le forme, le dimensioni e la tipografia dei componenti M3, con ogni valore letto dal set di token M3 ufficiale (material-web, tokens/versions/latest). Usali dove una schermata deve sembrare un'app più che un menu di gioco: negozi, caselle di posta, pagine di account e impostazioni, classifiche, un'app companion.

GoUi.use_preset(GoThemePresets.MATERIAL_LIGHT)
# Oppure: GoUi.use_preset(GoThemePresets.MATERIAL_DARK)
La galleria gohud in material_light — pulsanti a pillola, schede piene e campi con contorno
material_light
La galleria gohud in material_dark
material_dark
Una finestra di conferma in material_light — angoli da 28dp e pulsanti a pillola sopra un gioco
GoDialogs · material_light
Una finestra di conferma in material_dark sopra un gioco
GoDialogs · material_dark

Che cosa cambia

ParteIn Material 3
PulsantiPillole (l'arrotondamento completo). La piastra è alta 40dp, centrata nell'area di tocco da 48dp, quindi l'area di pressione non si riduce; la piastra di un pulsante compatto è di 32dp. Le etichette usano Roboto con peso 500.
Finestre di dialogo e fogliAngoli da 28dp (extra-large), margine interno da 24dp e un titolo da 24sp — GoDialogs, GoSurface, GoSheet e ogni popup costruito su di essi.
SchedeSchede piene con angoli da 12dp e margine interno da 16dp.
Campi e sliderCampi di testo con contorno; lo slider Expressive con la sua maniglia alta.
Chip e segmentiAngoli da 8dp (small).
Componenti per appGoNavBar, GoAppBar, GoFab, GoSearchBar, i chip, GoProgress e GoDatePicker seguono i token dei componenti M3.
TipografiaIl Roboto incluso per titoli, sottotitoli, didascalie e pulsanti. Il testo del corpo mantiene il font del tuo progetto, così coreano, giapponese, cinese o arabo si vedono comunque.
OpacitàOgni pannello è opaco — le superfici M3 sono piene. (I pannelli default, sci-fi e medievali sono opachi all'80%, così il gioco traspare.)
SkinGoSkinMaterial: il pannello laterale è il foglio laterale modale M3, la superficie della console è la barra degli strumenti flottante M3, i banner poggiano su surface_container_low.
Dove la specifica cede alla leggibilità. M3 sbiadisce un'etichetta disattivata al 38%; gohud la mantiene a 4,5:1 così resta leggibile. Gli snackbar mantengono una piastra chiara, perché il colore del loro testo è un token scelto dal widget — una piastra invertita metterebbe testo scuro su scuro. tools/check_contrast.py misura entrambi gli aspetti come tutti gli altri.

Roboto è distribuito con licenza SIL Open Font License 1.1 (assets/fonts/roboto/OFL.txt) ed è usato solo dai preset Material.

Bambini: la scatola dei giocattoli Nuovo

kids_light (crema e pesca con un primario uva) e kids_dark (fondo mirtillo, primario giallo sole, pillole menta) sono un aspetto pensato per giochi per bambini e app educative — paffuto, vivace e morbido, il genere di cosa che un ditino ha voglia di premere.

GoUi.use_preset(&"kids_light")
# Oppure: GoUi.use_preset(&"kids_dark")
La galleria gohud in kids_light — pulsanti di caramella gommosa color pastello
kids_light
La galleria gohud in kids_dark — la scatola dei giocattoli su una pagina blu notte
kids_dark
Una finestra di conferma in kids_light — un nastro del titolo color sole e un pulsante di chiusura tondo a caramella
GoDialogs · kids_light
Una finestra di conferma in kids_dark — un nastro del titolo color menta e un pulsante di chiusura a caramella
GoDialogs · kids_dark

Che cosa cambia

ParteNegli aspetti bambini
Ogni superficieUna caramella di gelatina, disegnata da GoStyleBoxJelly: un contorno spesso, un bordo pieno sotto tutto ciò che si preme, un corpo più chiaro in alto e più intenso in basso, e un riflesso bianco in alto a sinistra. Tasti, righe di lista, titoli pieghevoli, campi, barre, slider e pannelli lo indossano tutti.
PressioneIl bordo sparisce e la superficie affonda al suo posto, poi la gelatina si schiaccia — larga e piatta per un istante, poi torna su con un rimbalzo elastico. Vale per ogni pulsante creato da gohud; reduce_motion lo disattiva.
Campi, tab, barreUn campo di testo è la stessa gelatina rovesciata verso l'interno — un pozzetto incavato. Le tab sono bolle, le barre hanno un riflesso di gelatina.
ColoreOgni tipo di controllo nel suo colore pastello, scelto dallo stesso generatore di tutti gli aspetti, così ogni soglia di contrasto resta rispettata.
FinestreUn nastro color sole (menta di notte) dietro il titolo di una finestra — il titolo si rimpicciolisce, fino a 15, per restare su una riga — e un pulsante di chiusura tondo a caramella nel pastello di pericolo, con una croce bianca.
Parti della skinGoSkinKids: gli slot rapidi sono blocchetti di caramella che affondano durante la ricarica, i badge sono adesivi, i chip e la pillola di navigazione sono piccole gelatine, gli avatar caramelle tonde, il joystick un arcobaleno, i grafici usano i pastelli, alert e avvisi sono note adesive con un bordo pieno.
OpacitàPannelli, schede, avvisi e popup sono opachi.
Nessuna dimensione cambia. Il contorno e il bordo sono disegnati dentro il rettangolo di ogni controllo e ogni superficie mantiene il margine interno che il tema le ha dato, quindi una schermata impaginata in un altro aspetto mantiene la sua disposizione, e un host che fissa le proprie dimensioni misura le stesse parti. Anche il font del tuo progetto viene mantenuto, così le scritture non latine si vedono comunque.
Slot rapidi, un joystick e un chip in ogni skin — default, bambini, Material, medievale e sci-fi
Le parti che disegna una skin — la riga bambini è la seconda

Costruisci una scatola dei giocattoli tutta tua

python3 addons/gohud/tools/new_theme.py candy --from kids_light
# Modifica themes/palettes/candy.json, poi:
python3 addons/gohud/tools/make_theme.py candy
GoUi.use_preset(&"candy")

Fumetto: inchiostro deciso Nuovo

comic_light (pannelli bianchi su una pagina color crema carta, un primario cobalto) e comic_dark (pannelli ardesia su una pagina notturna, contorni crema, un primario giallo) disegnano ogni superficie come una vignetta a fumetti — un contorno d'inchiostro spesso con un'ombra netta dietro.

GoUi.use_preset(&"comic_light")
# Oppure: GoUi.use_preset(&"comic_dark")
La galleria gohud in comic_light — tasti, righe e barre inchiostrati con ombre nette
comic_light
La galleria gohud in comic_dark — inchiostro crema su una pagina notturna
comic_dark
Una finestra di conferma in comic_light — una didascalia del titolo gialla e un pulsante di chiusura tondo inchiostrato
GoDialogs · comic_light
Una finestra di conferma in comic_dark — una didascalia gialla su una scheda ardesia
GoDialogs · comic_dark

Che cosa cambia

ParteNegli aspetti fumetto
Ogni superficieDisegnata da GoStyleBoxComic: il colore della superficie dentro un contorno spesso del colore dell'inchiostro, e un'ombra netta verso il basso e a destra. La portano tasti, righe di elenco, campi, tab, barre, slider, pannelli e popup.
PressioneL'ombra sparisce e la superficie affonda al suo posto.
ControlliInterruttori, caselle di spunta, pulsanti di opzione e maniglie degli slider sono inchiostrati anche loro, ognuno con la sua piccola ombra.
FinestreUna didascalia gialla dietro il titolo di una finestra e un pulsante di chiusura tondo inchiostrato.
Parti della skinGoSkinComic: slot rapidi, chip, badge, avatar, avvisi, la barra di navigazione, il FAB e le celle delle date sono inchiostrati; il pomello del joystick proietta un'ombra; i grafici usano primari decisi.
OpacitàPannelli, schede, avvisi e popup sono opachi; le schede dell'HUD sono opache al 92%.

Impostazioni di inchiostro e ombra

Tre impostazioni di GoConfig cambiano in un colpo solo tutte le superfici fumetto. Non si ricostruisce nulla — lo schermo si ridisegna mentre le imposti.

GoUi.config.comic_border_width = 2.0   # il contorno (dp) — 3 di default
GoUi.config.comic_shadow_size = 6.0    # l'ombra (dp) — 4 di default
GoUi.config.comic_shadow = false       # nessuna ombra da nessuna parte

Un singolo widget può fare di testa sua, qualunque cosa dica l'impostazione:

GoStyle.comic_shadow(skip_button, false)     # questo pulsante resta piatto
GoStyle.comic_shadow(card, true, true)       # questa scheda e tutto ciò che contiene tengono la loro ombra
GoStyle.comic_border(title, 5.0)             # un contorno più spesso su questo
Nessuna dimensione cambia. Il contorno e l'ombra sono disegnati dentro il rettangolo di ogni controllo e ogni superficie mantiene il margine interno che il tema le ha dato, quindi una schermata impaginata in un altro aspetto mantiene la sua disposizione. Anche il font del tuo progetto viene mantenuto.
Slot rapidi, un joystick e un chip disegnati dalla skin fumetto
Le parti che disegna la skin fumetto

Costruisci un fumetto tutto tuo

python3 addons/gohud/tools/new_theme.py inked --from comic_light
# Modifica themes/palettes/inked.json, poi:
python3 addons/gohud/tools/make_theme.py inked
GoUi.use_preset(&"inked")

Arcade: tasti dipinti e plance spesse Nuovo

arcade_light (plance bianche su una pagina azzurro cielo) e arcade_dark (plance blu notte su una pagina notturna) vestono ogni schermata come un cabinato da sala giochi: ogni tasto è dipinto — una sfumatura da una cima chiara a un fondo più profondo, una pennellata di riflesso bianca e un bordo che affonda quando lo premi, dentro un contorno d'inchiostro blu notte — e ogni plancia è spessa, una cornice colorata attorno a un fondo chiaro.

GoUi.use_preset(&"arcade_light")
# Oppure: GoUi.use_preset(&"arcade_dark")
La galleria gohud in arcade_light — tasti dipinti verdi, blu, rossi e lavanda e una plancia HUD con cornice blu su una pagina azzurro cielo
arcade_light
La galleria gohud in arcade_dark — gli stessi tasti vivaci su una pagina notturna
arcade_dark
Una finestra di conferma in arcade_light — una fascia del titolo dorata, un tasto di chiusura tondo e rosso e tasti dipinti blu e verdi su una plancia incorniciata
GoDialogs · arcade_light
Una finestra di conferma in arcade_dark — una fascia dorata su una plancia blu notte
GoDialogs · arcade_dark

Che cosa cambia

ParteNegli aspetti arcade
TastiDisegnati da GoStyleBoxArcade: un corpo sfumato, un riflesso bianco attorno all'angolo in alto a sinistra, un bordo più profondo e un contorno d'inchiostro blu notte. Il tasto primario è verde, i tasti normali e la tab scelta blu, i tasti di pericolo corallo e rossi, i tasti piccoli e le altre tab lavanda.
EtichetteBianche con un contorno d'inchiostro su ogni tasto dipinto. Ogni vernice viene spostata finché quell'etichetta non si legge a ogni altezza della sua sfumatura — 4,6:1 o più, con il contorno contato come parte della lettera, come fanno le WCAG.
PressioneIl bordo sparisce, il tasto affonda al suo posto e poi scatta indietro.
PlancePannelli, schede, schede dell'HUD e popup sono spessi: una cornice colorata (6dp attorno a una finestra, 4 attorno a una scheda o a una scheda dell'HUD, 3 attorno a un menu o a un avviso) con il suo riflesso e il suo bordo, attorno a un fondo chiaro con una linea d'inchiostro. Il loro margine interno cresce un po' per contenerla, così il testo non tocca mai la cornice.
Campi e barreI campi di testo e le scanalature delle barre sono fondi incassati; il riempimento di una barra è un tubo dipinto e lucido nella tinta vivace del suo colore.
FinestreUna fascia dorata con un titolo bianco contornato d'inchiostro, e un tasto di chiusura tondo e rosso con una croce bianca.
Parti della skinGoSkinArcade: slot rapidi e chip sono copritasti, uno slot in ricarica accende un bordo dorato, i badge sono piastrine chiare, gli avvisi sono incorniciati nel loro colore, la scheda scelta accende un bordo dorato, il FAB è un tasto dorato e il joystick un pad lucido con quattro frecce.
OpacitàPannelli, schede, avvisi e popup sono opachi; le schede dell'HUD sono opache al 94%.

Dipingi un tasto del suo colore

Il tema dipinge i tasti per tipo. Un menu i cui tasti vogliono ognuno il proprio colore li dipinge uno per uno — la superficie al passaggio del mouse viene un po' più chiara, quella premuta un po' più profonda, e quella disattivata resta spenta:

menu.add_child(GoStyle.arcade_paint(GoStyle.button("Resume", _resume, GoStyle.Tone.PRIMARY), Color("#4ACB3E")))
menu.add_child(GoStyle.arcade_paint(GoStyle.button("Shop", _shop), Color("#FF8A1E")))
GoStyle.arcade_paint(stage_card, Color("#E3343D"), true)   # la cornice di una plancia e ogni tasto al suo interno
L'etichetta si legge sempre. Una vernice su cui l'etichetta bianca non si leggerebbe viene spostata verso il chiaro o verso lo scuro finché non si legge, quindi il colore che passi è un punto di partenza. Con gli altri aspetti arcade_paint() non fa nulla.
I tasti mantengono la loro dimensione. Il bordo e il riflesso sono disegnati dentro il rettangolo di ogni tasto, quindi una schermata impaginata in un altro aspetto mantiene la sua disposizione. Le plance danno al contenuto un margine interno un po' più ampio (una scheda e una scheda dell'HUD 12dp, 15 in basso) così il testo non tocca mai la cornice. Anche il font del tuo progetto viene mantenuto.
Slot rapidi, un joystick e un chip disegnati dalla skin arcade — copritasti lucidi e un pad con quattro frecce
Le parti che disegna la skin arcade

Costruisci un arcade tutto tuo

python3 addons/gohud/tools/new_theme.py cabinet --from arcade_light
# Modifica themes/palettes/cabinet.json — i colori *_vivid sono le vernici — poi:
python3 addons/gohud/tools/make_theme.py cabinet
GoUi.use_preset(&"cabinet")