Popup, dialog, lembar, kartu, panel HUD, peringatan, dan snackbar menggambar mukanya pada opasitas 80%. Pertarungan terus berjalan di balik sebuah dialog konfirmasi; petanya tampak di bawah lembar inventaris. Di dalam sebuah game ini bukan hiasan — inilah yang menjaga pemain tetap tahu di mana ia berada. Panel yang sepenuhnya pekat menghapus tempat ia tadi berdiri begitu sebuah jendela terbuka.
modulate.a.
Lima lapis, yang paling spesifik dulu
| Urutan | Di mana | Satuan | Jangkauan |
|---|---|---|---|
| ① | argumen pada pemanggilan itu — surface.alpha, GoStyle.card(…, alpha) | rasio 0.0–1.0 | satu jendela |
| ② | GoConfig.container_alpha_overrides[kind] | rasio 0.0–1.0 | satu jenis panel, seluruh proyek |
| ③ | GoConfig.metric_overrides[<kind>_alpha] | persen | proyek yang menyimpan setiap ukuran di satu tempat |
| ④ | GoConfig.container_alpha | rasio 0.0–1.0 | semua panel sekaligus |
| ⑤ | GoHud/constants/<kind>_alpha milik temanya | persen | apa yang diputuskan tampilannya — sumber kebenarannya |
Tanpa satu pun dari itu disetel, nilainya 100, jadi tak ada yang berubah pada tema lama.
alpha menerima 0.0–1.0, satuan yang sama dengan Color.a dan modulate.a,
dan nilai negatif berarti "tidak disetel". Satu-satunya pengecualian adalah konstanta milik temanya, karena
sebuah konstanta Theme tidak bisa memuat float: konstanta itu dan kanal yang menimpanya
(metric_overrides, yang memakai nama dan tipe bilangan bulat yang sama dengan temanya) ditulis
sebagai 80. Selain itu tidak ada.
# Satu jendela saja — dialog konfirmasi yang tak boleh menutupi pertarungan di belakangnya
surface.alpha = 0.6
sheet.alpha = 0.7
dialogs.alpha = 0.9 # kolom @export pun rasio
drawer.alpha = 0.7
GoPopover.open(slot, body, {"alpha": 0.9})
var glass := GoStyle.card(Color.TRANSPARENT, -1.0, -1.0, -1.0, 0.5)
# Per jenis — jaga HUD tetap nyaris pekat, karena teksnya duduk langsung di atas dunianya
GoUi.config.container_alpha_overrides = {
GoTheme.BOX_PANEL: 0.7, # dialog dan lembar bisa bernapas
GoTheme.BOX_HUD: 0.95,
}
GoUi.refresh() # menggambar ulang widget yang sudah terbuka
# Seluruh proyek — dunia yang ramai ingin panelnya kembali pekat
GoUi.config.container_alpha = 1.0
GoUi.refresh()
GoUi.surface_alpha(GoTheme.BOX_PANEL) # rasio hasilnya, mis. 0.8
Apa yang mengikuti nilainya, dan apa yang tidak
| Mengikutinya — wadah | Mengabaikannya — yang Anda tekan, dan penanda |
|---|---|
GoSurface (cangkang tunggal di balik dialog, lembar, dan dropdown) · GoSheet · GoDialogs · GoDrawer · GoPopover · GoNotice · GoSnackbar · GoPromptCard · GoCoachMark · GoConsole |
setiap tombol · GoSlot (slot cepat) · GoBadge · kontrol tersegmentasi · sel pilihan · chip · cakram dan avatar |
GoStyle.card() · hud_panel() · overlay_panel() · alert() · plate() · edge_card_panel() · style_notice_panel() · floating() · box() · surface() |
semua teks dan ikon |
Tombol yang statusnya pudar tak lagi mengatakan dirinya apa, dan lencana ada supaya dua huruf terbaca — keduanya bukan wadah, jadi keduanya tidak mengikuti nilai itu.
popup_alpha 100). Mesin bisa menempatkan sebuah
PopupMenu di dalam Window-nya sendiri, dan di sana OS tidak mengomposisinya dengan
game: tembus pandangnya keluar hitam alih-alih tembus. Turunkan hanya pada proyek yang menyematkan
subjendelanya (gui_embed_subwindows).
Tiga rincian yang datang dari layar sungguhan
-
Nilainya mengalikan, bukan menggantikan. Muka HUD default sudah beralfa 0.92, jadi
hud_alpha80 mendarat di 0.736 — tema yang sengaja membuat sebuah muka tembus pandang mempertahankan keputusan itu. Sisi sebaliknya: terapkan dua kali dan panelnya memudar dua kali, dan karena itulah alfanya dikalikan tepat di satu tempat (GoSkin.surface_box()) sementara setiap fungsi muka lain meneruskan argumennya alih-alih memudarkan hasilnya sendiri. -
Warna yang Anda berikan adalah warna yang Anda dapat.
GoStyle.plate(…, fill)mempertahankan isian eksplisit persis seperti yang diberikan:Color(ink, 0.14)sudah menyatakan alfanya, dan mengalikan opasitas panel ke dalamnya akan memotong maksud pemanggilnya dua kali.GoStyle.floating(…, opaque = true)mengabaikan nilainya karena alasan sejenis — mengisi mukanya sampai pekat adalah seluruh tujuan flag itu. -
Panel yang bukan buatan gohud dapat aturan yang sama.
GoStyle.fade_panel(node)— setelah node-nya ada di dalam tree, sehingga ia membaca tema yang diwarisinya. Ia idempoten: muka aslinya dicatat dan setiap pemanggilan menghitung ulang dari situ, jadi penggambaran ulang berkali-kali tak pernah menumpuk. Setelah menukar tema,GoStyle.forget_face(node)membuang catatan itu supaya pemanggilan berikutnya mengambil muka yang baru.
Muka buatan sendiri pun memudar — dan di situlah bagian yang diam-diam rusak
Panel bersudut potong (GoStyleBoxCut) dan bingkai tempaan
(GoStyleBoxMedieval) bukan StyleBoxFlat; keduanya menggambar dirinya sendiri. Taruh
opasitasnya hanya di cabang flat dan tema-tema ini diam-diam mengabaikannya sementara setiap uji berbasis nilai tetap
lolos. Keduanya memudarkan latarnya dan mempertahankan pendar, paku keling, ukiran sudut, serta bevel pada kekuatan penuh —
dan serat maupun bevel muka abad pertengahan memang selalu sebanding dengan alfa latarnya, jadi keduanya ikut menipis
bersama panelnya.
Dan itulah poin yang lebih luas: bg_color.a == 0.8 adalah sebuah angka. Dunianya tampak menembus dan
teksnya tetap terbaca adalah persyaratannya. gohud memeriksa yang pertama di rangkaian uji headless-nya dan yang
kedua dengan menggambar panel di atas garis-garis diagonal pada monitor virtual
(tests/gohud_alpha_shot.gd) — pada muka flat, muka terpotong, dan muka tempaan, di tema gelap
maupun di tema terang.