gohud

Tiga lapis

← Tema

Sebuah preset membundel ketiganya. Kolom yang Anda biarkan kosong kembali ke nilai default.

LapisMenentukanCara mengubahnya
Theme Warna, ukuran, skala teks, dan bentuk dari segala sesuatu yang digambar mesin — panel tombol, kolom masukan, tab, gambar sakelar Tulis sendiri sebuah .tres, atau hasilkan dengan tools/make_theme.py
GoSkin Bentuk dari segala sesuatu yang digambar kode — joystick, muka slot cepat, cincin coach mark, chip, kerangka pemuatan, pemisah, judul bagian Turunkan kelasnya dan timpa hanya metode yang Anda perlukan
GoIconSet Ikon berdasarkan nama — 84 gambar default, atau 16 gambar ukiran set abad pertengahan di atasnya. Sebuah paket tekstur atau font ikon; kode pemanggilnya sama saja Sediakan satu set, atau timpa beberapa nama saja
Kenapa Theme saja tidak cukup. Membulat adalah satu-satunya sudut yang dimiliki StyleBoxFlat — setel radiusnya ke nol dan Anda dapat sudut siku-siku; tidak ada apa pun di antaranya. Sudut terpotong diagonal, satu tepi yang ditebalkan, pendar di luar: mesin tidak menggambar satu pun dari itu. Lagi pula joystick dan coach mark digambar di dalam _draw(), tempat yang sama sekali tak terjangkau oleh tema.

Memilih salah satu

GoUi.use_preset(GoThemePresets.SCIFI_DARK)

Satu baris itu menukar tema, skin, dan ikon. Dari editor, gunakan Project Settings → Gohud → Theme → Preset; dari resource setelan, GoConfig.preset.

Mempertahankan satu kolom sebagai milik Anda

GoUi.use_preset(GoThemePresets.SCIFI_DARK)
GoUi.config.icons = my_icons     # ikon Anda, sisanya dari preset

Menyetel theme, skin, atau icons secara eksplisit mengalahkan preset.

Empat belas preset bawaan

PresetPanelSkin · ikon
default_dark · default_lightPanel StyleBoxFlat membulat dengan skala bayangan bertingkat; tombol primer terangkat lalu tenggelam saat ditekanGoSkin · 84 ikon default
scifi_dark · scifi_lightPanel GoStyleBoxCut bersudut potong dengan tepi neon dan pendar; penanda fokus GoStyleBoxBracketGoSkinSciFi — joystick heksagonal · ikon default
medieval_dark · medieval_lightBingkai tempaan GoStyleBoxMedieval — besi dan kulit, atau perkamen — dengan paku keling dan ornamen sudut pada menuGoSkinMedieval · 16 ikon ukiran di atas ikon default
material_light · material_dark BaruMaterial 3 Expressive untuk layar aplikasi — tombol pil 40dp di dalam area sentuh 48dp, dialog 28dp, kartu terisi, kolom bergaris tepi, slider Expressive; komponen aplikasi (bilah navigasi, bilah aplikasi atas, FAB, bilah pencarian, chip, progres, pemilih tanggal) mengikuti token komponen M3GoSkinMaterial · ikon default
kids_light · kids_dark BaruUntuk anak-anak — kotak mainan: garis tepi tebal dan bibir padat di bawah setiap tombol, yang tenggelam saat ditekan; kolom teks cekung, tab gelembung, bilah jeli; setiap jenis kontrol dengan warna krayonnya sendiri, slot cepat seperti permen, lencana stiker, joystick pelangi, dan grafik berwarna. Ukuran dan font proyek tetap sama.GoSkinKids · ikon default
arcade_light · arcade_dark BaruMesin arcade yang digambar oleh GoStyleBoxArcade: setiap tombol dicat dengan gradasi dari atas ke bawah, kilau putih, dan bibir yang tenggelam saat ditekan, di dalam garis tepi tinta biru tua, labelnya putih dengan garis tepi tinta — primer hijau, tombol biru, bahaya merah, tombol kecil lavender. Papan tebal dengan bingkai berwarna di sekeliling ceruk pucat; spanduk judul emas dan tombol tutup merah yang bundar pada jendela.GoSkinArcade · ikon default
comic_light · comic_dark BaruPanel buku komik yang digambar oleh GoStyleBoxComic: garis tepi tinta tebal dan bayangan tegas di setiap muka, yang hilang saat muka itu ditekan; toggle, kotak centang, dan pegangan slider bertinta, keterangan judul kuning pada jendela. Lebar garis tepi, ukuran bayangan, dan apakah bayangan tampil sama sekali adalah setelan GoConfig.GoSkinComic · ikon default

Keempat belasnya, berdampingan

Layar galeri yang sama dengan hanya nama presetnya yang diganti — tak satu baris pun kode widget yang berbeda. Masing-masing adalah ponsel yang dipegang tegak, 390×844.

Galeri widget gohud dengan preset default_dark
default_dark
Galeri widget gohud dengan preset default_light
default_light
Galeri widget gohud dengan preset scifi_dark
scifi_dark
Galeri widget gohud dengan preset scifi_light
scifi_light
Galeri widget gohud dengan preset medieval_dark
medieval_dark
Galeri widget gohud dengan preset medieval_light
medieval_light
Galeri widget gohud dengan preset material_light
material_light
Galeri widget gohud dengan preset material_dark
material_dark
Galeri widget gohud dengan preset kids_light
kids_light
Galeri widget gohud dengan preset kids_dark
kids_dark
Galeri widget gohud dengan preset comic_light
comic_light
Galeri widget gohud dengan preset comic_dark
comic_dark
Galeri widget gohud dengan preset arcade_light
arcade_light
Galeri widget gohud dengan preset arcade_dark
arcade_dark

Abad pertengahan: besi, kulit, dan perkamen

medieval_dark memadukan besi gelap dan kulit dengan emas antik. medieval_light memakai perkamen dan tinta. Keduanya memakai GoSkinMedieval, widget yang sudah ada, dan 16 ikon orisinal dengan detail ukiran; ikon navigasi kembali ke set aslinya.

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

Pilih presetnya sebelum membuat UI Anda. Penimpaan eksplisit lewat GoConfig.theme, skin, atau icons tetap diutamakan. Buka res://addons/gohud/examples/medieval/medieval.tscn lalu tekan F6 untuk melihat lembar karakter, tas, dan jurnal misi yang berfungsi. Tombol-tombolnya mengganti varian dan membuka rincian benda.

Antarmuka karakter, inventaris, dan misi Medieval Iron
Besi dan kulit
Antarmuka karakter, inventaris, dan misi Medieval Parchment
Perkamen dan tinta

Bingkai menu punya paku keling dan ornamen sudut kecil; HUD yang selalu terlihat mempertahankan tepi yang tenang. HP, mana, dan stamina memakai isian merah, biru, dan zaitun. Cinzel dibatasi pada judul dan subjudul; teks isi tetap memakai font induk/default. Font bawaannya menyertakan lisensinya di assets/fonts/cinzel/OFL.txt.

Set ikon ukirannya menggambar ulang bag, book, box, coin, crown, flag, heart, key, map, potion, shield, star, sword, dan user, serta menambahkan scroll dan seal. Semua nama lainnya kembali ke set default, sehingga close dan settings mempertahankan gambar defaultnya di setiap preset. Cinzel mencakup aksara Latin; berikan font tersendiri untuk judul yang dilokalkan melalui shape.fonts.

Apa yang diperiksa rangkaian uji untuk kedua varian. Skin abad pertengahan terpilih; panel menu dan HUD berupa bingkai tempaan, dengan ornamen hanya pada menu; judul memakai Cinzel sementara teks isi mempertahankan font warisan; ikon ukiran terimpor sebagai DPITexture; slot cepat sungguhan memakai skin tersebut; mengubah kenop pada salinan skin sampai ke slot tanpa menyentuh presetnya; dan beralih kembali memulihkan geometri default serta sci-fi.

Bangun kerajaan Anda sendiri

python3 addons/gohud/tools/new_theme.py kingdom --from medieval_dark
# Sunting themes/palettes/kingdom.json, lalu:
python3 addons/gohud/tools/make_theme.py kingdom
godot --headless --path . --import
# Di GDScript, sebelum membuat widget-nya:
GoUi.use_preset(&"kingdom")

Tema JSON bisa mewarisi tema JSON lain. Nilai yang dihilangkan mempertahankan setelan induknya; pewarisan yang melingkar ditolak. Preset hasil generasi mempertahankan set ikon induknya.

SetelanEfek
shape.material0: besi · 1: kulit · 2: perkamen. Menentukan guratan pada permukaannya.
shape.grain_alphaOpasitas tekstur. Pakai 0 untuk permukaan yang bersih.
shape.ornament_scale · shape.bevel_strengthUkuran ornamen sudut menu dan intensitas sorotan bevel.
shape.fontsMemetakan peran title, subtitle, caption, body, dan button ke berkas font res:// yang ada di dalam add-on. Peran yang dihilangkan mempertahankan font warisannya.
skin.dialsRadius slot cepat, tampilnya paku keling, serat, dan sorotan. Tabel lengkap di bawah memuat setiap kenop.

Material 3: tampilan untuk layar aplikasi Baru

material_light dan material_dark membawa Material 3 Expressive ke gohud — bentuk, ukuran, dan tipografi komponen M3, dengan setiap angka dibaca dari set token M3 resmi (material-web, tokens/versions/latest). Pakai keduanya di tempat sebuah layar semestinya terasa seperti aplikasi, bukan menu game: toko, kotak masuk, halaman akun dan setelan, papan peringkat, aplikasi pendamping.

GoUi.use_preset(GoThemePresets.MATERIAL_LIGHT)
# Atau: GoUi.use_preset(GoThemePresets.MATERIAL_DARK)
Galeri gohud dalam material_light — tombol pil, kartu terisi, dan kolom bergaris tepi
material_light
Galeri gohud dalam material_dark
material_dark
Dialog konfirmasi dalam material_light — sudut 28dp dan tombol pil di atas game
GoDialogs · material_light
Dialog konfirmasi dalam material_dark di atas game
GoDialogs · material_dark

Apa yang berubah

BagianDalam Material 3
TombolPil (sudut penuh). Pelatnya setinggi 40dp, di tengah target sentuh 48dp, sehingga area tekannya tidak menyusut; pelat tombol ringkas 32dp. Labelnya memakai Roboto dengan ketebalan 500.
Dialog dan lembarSudut 28dp (extra-large), padding 24dp, dan judul 24sp — GoDialogs, GoSurface, GoSheet, dan setiap popup yang dibangun di atasnya.
KartuKartu terisi dengan sudut 12dp dan padding 16dp.
Kolom dan sliderKolom teks bergaris tepi; slider Expressive dengan pegangannya yang tinggi.
Chip dan segmenSudut 8dp (small).
Komponen aplikasiGoNavBar, GoAppBar, GoFab, GoSearchBar, chip, GoProgress, dan GoDatePicker mengikuti token komponen M3.
TipografiRoboto bawaan untuk judul, subjudul, keterangan, dan tombol. Teks isi tetap memakai font proyek Anda, sehingga bahasa Korea, Jepang, Tionghoa, atau Arab tetap tergambar.
OpasitasSetiap panel buram — permukaan M3 itu pejal. (Panel default, sci-fi, dan abad pertengahan 80% buram, sehingga game terlihat di baliknya.)
SkinGoSkinMaterial: laci menjadi side sheet modal M3, muka konsol menjadi floating toolbar M3, banner berada di atas surface_container_low.
Di mana spesifikasi mengalah demi keterbacaan. M3 memudarkan label nonaktif hingga 38%; gohud menjaganya di 4.5:1 agar tetap terbaca. Snackbar mempertahankan pelat terang, karena warna teksnya adalah token yang dipilih widget — pelat terbalik akan menaruh teks gelap di atas gelap. tools/check_contrast.py mengukur kedua tampilan ini seperti tampilan lainnya.

Roboto berlisensi SIL Open Font License 1.1 (assets/fonts/roboto/OFL.txt) dan hanya dipakai oleh preset Material.

Anak-anak: kotak mainan Baru

kids_light (krem dan persik dengan warna primer ungu anggur) dan kids_dark (dasar biru blueberry, warna primer kuning cerah, pil mint) adalah tampilan yang dibuat untuk game anak-anak dan aplikasi belajar — tebal, cerah, dan kenyal, jenis benda yang ingin ditekan jari kecil.

GoUi.use_preset(&"kids_light")
# Atau: GoUi.use_preset(&"kids_dark")
Galeri gohud dalam kids_light — tombol permen jeli berwarna krayon
kids_light
Galeri gohud dalam kids_dark — kotak mainan di halaman biru malam
kids_dark
Dialog konfirmasi dalam kids_light — pita judul cerah dan tombol tutup permen yang bulat
GoDialogs · kids_light
Dialog konfirmasi dalam kids_dark — pita judul mint dan tombol tutup permen
GoDialogs · kids_dark

Apa yang berubah

BagianDalam tampilan anak-anak
Setiap mukaPermen jeli, digambar oleh GoStyleBoxJelly: garis tepi tebal, bibir padat di bawah semua yang Anda tekan, badan yang lebih terang di atas dan lebih pekat di bawah, serta kilau putih di kiri atas. Tombol, baris daftar, judul lipat, kolom, bilah, slider, dan panel semuanya memakainya.
Saat ditekanBibirnya hilang dan mukanya tenggelam ke tempatnya, lalu memipih seperti jeli — lebar dan pipih sesaat, lalu memantul kembali dengan lentur. Ini berjalan pada setiap tombol yang dibuat gohud; reduce_motion mematikannya.
Kolom, tab, bilahKolom teks adalah jeli yang sama yang dibalik ke dalam — sebuah sumur cekung. Tab berupa gelembung, bilah punya kilau jeli.
WarnaSetiap jenis kontrol dengan warna krayonnya sendiri, dipilih oleh generator yang sama seperti setiap tampilan, sehingga setiap gerbang kontras tetap terpenuhi.
JendelaPita cerah (mint di malam hari) di balik judul jendela — judulnya mengecil, sampai 15, agar tetap satu baris — dan tombol tutup permen yang bulat dalam krayon bahaya dengan silang putih.
Bagian skinGoSkinKids: slot cepat berupa balok permen yang tenggelam selama jeda, lencana berupa stiker, chip dan pil navigasi berupa jeli kecil, avatar berupa permen bulat, joystick-nya pelangi, grafik memakai krayon, peringatan dan pemberitahuan berupa catatan stiker dengan bingkai pejal.
OpasitasPanel, kartu, pemberitahuan, dan popup buram.
Tidak ada perubahan ukuran. Garis tepi dan bibirnya digambar di dalam persegi panjang setiap kontrol dan setiap muka mempertahankan padding yang diberikan tema, sehingga layar yang ditata dalam tampilan lain tetap mempertahankan tata letaknya, dan proyek induk yang menyematkan ukurannya sendiri mengukur bagian-bagian yang sama. Font proyek Anda juga dipertahankan, sehingga aksara non-Latin tetap tergambar.
Slot cepat, joystick, dan chip di setiap skin — default, anak-anak, Material, abad pertengahan, dan sci-fi
Bagian-bagian yang digambar sebuah skin — baris anak-anak ada di urutan kedua

Buat kotak mainan Anda sendiri

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

Komik: tinta tebal Baru

comic_light (panel putih di halaman krem seperti kertas, warna primer biru kobalt) dan comic_dark (panel batu sabak di halaman malam, garis tepi krem, warna primer kuning) menggambar setiap muka seperti panel buku komik — garis tepi tinta tebal dengan bayangan tegas di belakangnya.

GoUi.use_preset(&"comic_light")
# Atau: GoUi.use_preset(&"comic_dark")
Galeri gohud dalam comic_light — tombol, baris, dan bilah bertinta dengan bayangan tegas
comic_light
Galeri gohud dalam comic_dark — tinta krem di halaman malam
comic_dark
Dialog konfirmasi dalam comic_light — keterangan judul kuning dan tombol tutup bulat bertinta
GoDialogs · comic_light
Dialog konfirmasi dalam comic_dark — keterangan kuning pada kartu batu sabak
GoDialogs · comic_dark

Apa yang berubah

BagianDalam tampilan komik
Setiap mukaDigambar oleh GoStyleBoxComic: warna permukaan di dalam garis tepi tebal berwarna tinta, dan bayangan tegas ke bawah dan ke kanan. Tombol, baris daftar, kolom, tab, bilah, slider, panel, dan popup semuanya memakainya.
Saat ditekanBayangannya hilang dan mukanya tenggelam ke tempatnya.
KontrolToggle, kotak centang, tombol radio, dan pegangan slider juga bertinta, masing-masing dengan bayangan kecilnya sendiri.
JendelaKeterangan kuning di balik judul jendela dan tombol tutup bulat bertinta.
Bagian skinGoSkinComic: slot cepat, chip, lencana, avatar, pemberitahuan, bilah navigasi, FAB, dan sel tanggal bertinta; kenop joystick memberi bayangan; grafik memakai warna primer yang tegas.
OpasitasPanel, kartu, pemberitahuan, dan popup buram; kartu HUD 92% buram.

Setelan tinta dan bayangan

Tiga setelan GoConfig mengubah setiap muka komik sekaligus. Tidak ada yang dibangun ulang — layar menggambar ulang begitu Anda menyetelnya.

GoUi.config.comic_border_width = 2.0   # garis tepi (dp) — default 3
GoUi.config.comic_shadow_size = 6.0    # bayangan (dp) — default 4
GoUi.config.comic_shadow = false       # tanpa bayangan di mana pun

Satu widget bisa memilih jalannya sendiri, apa pun kata setelannya:

GoStyle.comic_shadow(skip_button, false)     # tombol ini datar
GoStyle.comic_shadow(card, true, true)       # kartu ini dan semua isinya tetap berbayangan
GoStyle.comic_border(title, 5.0)             # garis tepi lebih tebal untuk yang satu ini
Tidak ada perubahan ukuran. Garis tepi dan bayangannya digambar di dalam persegi panjang setiap kontrol dan setiap muka mempertahankan padding yang diberikan tema, sehingga layar yang ditata dalam tampilan lain tetap mempertahankan tata letaknya. Font proyek Anda juga dipertahankan.
Slot cepat, joystick, dan chip yang digambar oleh skin komik
Bagian-bagian yang digambar skin komik

Buat komik Anda sendiri

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

Arcade: tombol bercat dan papan tebal Baru

arcade_light (papan putih di halaman biru langit) dan arcade_dark (papan biru tua di halaman malam) mendandani setiap layar seperti mesin arcade: setiap tombol dicat — gradasi dari atas yang terang ke bawah yang lebih pekat, goresan kilau putih, dan bibir yang tenggelam saat ditekan, di dalam garis tepi tinta biru tua — dan setiap papan tebal, berupa bingkai berwarna di sekeliling ceruk pucat.

GoUi.use_preset(&"arcade_light")
# Atau: GoUi.use_preset(&"arcade_dark")
Galeri gohud dalam arcade_light — tombol bercat hijau, biru, merah, dan lavender serta papan HUD berbingkai biru di halaman biru langit
arcade_light
Galeri gohud dalam arcade_dark — tombol-tombol cerah yang sama di halaman malam
arcade_dark
Dialog konfirmasi dalam arcade_light — spanduk judul emas, tombol tutup merah yang bundar, serta tombol bercat biru dan hijau di papan berbingkai
GoDialogs · arcade_light
Dialog konfirmasi dalam arcade_dark — spanduk emas di papan biru tua
GoDialogs · arcade_dark

Apa yang berubah

BagianDalam tampilan arcade
TombolDigambar oleh GoStyleBoxArcade: badan bergradasi, kilau putih di sekitar sudut kiri atas, bibir yang lebih pekat, dan garis tepi tinta biru tua. Tombol primer berwarna hijau, tombol biasa dan tab terpilih biru, tombol bahaya koral dan merah, tombol kecil dan tab lainnya lavender.
LabelPutih dengan garis tepi tinta di setiap tombol bercat. Setiap cat digeser sampai label itu terbaca di setiap ketinggian gradasinya — 4.6:1 atau lebih, dengan garis tepi dihitung sebagai bagian dari huruf, seperti yang dilakukan WCAG.
Saat ditekanBibirnya hilang, tombol tenggelam ke tempatnya lalu melompat kembali.
PapanPanel, kartu, kartu HUD, dan popup itu tebal: bingkai berwarna (6dp di sekeliling jendela, 4 di sekeliling kartu atau kartu HUD, 3 di sekeliling menu atau pemberitahuan) dengan kilau dan bibirnya sendiri, mengelilingi ceruk pucat bergaris tinta. Padding-nya sedikit bertambah untuk menampungnya, sehingga teks tidak pernah menyentuh bingkai.
Kolom dan bilahKolom teks dan alur bilah adalah ceruk yang cekung; isian bilah berupa tabung bercat mengilap dengan warna isian cerah dari warnanya.
JendelaSpanduk emas dengan judul putih bergaris tepi tinta, dan tombol tutup merah yang bundar dengan tanda silang putih.
Bagian skinGoSkinArcade: slot cepat dan chip berupa tutup tombol, slot yang sedang cooldown menyalakan bingkai emas, lencana berupa pelat terang, peringatan dibingkai dengan warnanya, kartu terpilih menyalakan bingkai emas, FAB berupa tombol emas, dan joystick berupa bantalan mengilap dengan empat panah.
OpasitasPanel, kartu, pemberitahuan, dan popup buram; kartu HUD 94% buram.

Cat satu tombol dengan warnanya sendiri

Tema mengecat tombol menurut jenisnya. Menu yang setiap tombolnya menginginkan warna sendiri mengecatnya satu per satu — muka saat hover sedikit lebih terang, muka saat ditekan sedikit lebih pekat, dan muka nonaktif tetap redup:

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)   # bingkai papan, dan setiap tombol di dalamnya
Labelnya selalu terbaca. Cat yang membuat label putih tidak terbaca digeser lebih terang atau lebih pekat sampai terbaca, jadi warna yang Anda berikan hanyalah titik awal. Di bawah tampilan lain, arcade_paint() tidak melakukan apa-apa.
Ukuran tombol tetap. Bibir dan kilaunya digambar di dalam persegi panjang setiap tombol, sehingga layar yang ditata dalam tampilan lain tetap mempertahankan tata letaknya. Papan memberi padding sedikit lebih besar pada isinya (kartu dan kartu HUD 12dp, 15 di bagian bawah) agar teks tidak pernah menyentuh bingkai. Font proyek Anda juga dipertahankan.
Slot cepat, joystick, dan chip yang digambar oleh skin arcade — tutup tombol mengilap dan bantalan dengan empat panah
Bagian-bagian yang digambar skin arcade

Buat arcade Anda sendiri

python3 addons/gohud/tools/new_theme.py cabinet --from arcade_light
# Sunting themes/palettes/cabinet.json — warna *_vivid adalah catnya — lalu:
python3 addons/gohud/tools/make_theme.py cabinet
GoUi.use_preset(&"cabinet")