gohud

HUD

← Widget

Hal-hal kecil yang menentukan bagus atau tidaknya

Poles panel besarnya sesuka Anda — yang selalu menyita perhatian justru sesuatu yang kecil: satu kata terbelah dua, pendar yang terpotong, slot yang sempit. Empat hal semacam itu ditunjukkan pada 2026-09-13 lalu diperbaiki di widget dan temanya, bukan di layar demonya, sehingga setiap layar mendapat hasil yang sama.

Apa yang terlihatPenyebabPerbaikan
Done pada coach mark menjadi Don/e Tombol dengan pembungkusan baris menyala mengurangi lebar teksnya dari lebar minimumnya — sempitkan sedikit dan ia patah di tengah kata GoStyle.fit_words(): satu kata tidak pernah dipenggal; beberapa kata boleh membungkus, tetapi kata terpanjang selalu muat — dinilai pada teks yang ditampilkan, bukan pada kunci terjemahannya, dan diterapkan ulang oleh formulir ketika bahasanya berganti
Pendar tombol selebar layar terpotong secara vertikal di sisi kiri Kontainer gulir memotong di tepinya, tanpa kecuali. Hanya sisi kanan yang selamat, berkat celah relnya GoScroll meminjam padding induknya untuk mendorong tepinya 12dp keluar lalu mengembalikannya di dalam — kontennya tidak bergeser
Waktu, ikon, dan jumlah menumpuk vertikal di dalam sebuah slot Tiga baris di dalam 48dp Ikon besar di tengah, pintasan di kiri atas, jumlah sebagai lencana di kanan bawah, sisa waktu sebagai lencana di atas ikonnya — panel lencananya berasal dari badge_box() milik skin
Dropdown datar tanpa pilihan yang terlihat Sorotan butir memakai panel tombol; penanda radionya adalah default mesin yang samar Panel sorotan tersendiri (rona aksen lembut), gambar radio yang sama dengan kotak centang, tinggi butir yang pas untuk sentuhan
Dropdown yang terbuka — panel sorotan aksen lembut dan penanda radio pada butir yang dipilih
Dropdown — panel sorotan dan penanda radio
Empat slot cepat — pintasan di kiri atas, lencana jumlah di kanan bawah, yang pertama dengan lencana sisa waktu
Slot — lencana sudut dan sisa waktu (sci-fi)

Berikan deskripsi pada tombol yang hanya berisi ikon lewat GoStyle.icon_button(icon, action, -1, tooltip_key) — tooltip untuk pengguna tetikus dan nama aksesibilitas untuk pembaca layar keduanya berasal dari satu nilai itu. gohud menggambar tooltip-nya sendiri: default mesinnya memecah teks satu karakter per baris ketika perhitungan lebarnya meleset (terukur selebar 1dp).

Kartu coach mark menjauh dari perabot layar

Pada mode lanskap, kartunya dulu dilempar ke tepi paling atas atau paling bawah — persis tempat header dan bagian HUD berada; di dalam demo ia mendarat di atas → × milik header. Kini ia tetap sejajar dengan sasarannya, memutari setiap GoHudAnchor yang memesan ruang, dan menerima hal-hal lain yang harus dihindari lewat keep_clear. Ia bergerak sependek mungkin untuk melewati penghalang tanpa menutupi sasarannya, dan tetap diam bila layarnya terlalu kecil untuk melewati semuanya — bertumpuk lebih baik daripada menghilang. Kedalamannya — agar ia terbaca di atas halaman — berasal dari kenop skin (float_shadow_size, float_shadow_lift, float_shadow_alpha; skin bersudut potong memakai float_glow_size).

tour.keep_clear = [header_bar, toolbar]   # perabot layar yang bukan anchor

Layar dengan tetikus dan papan ketik

Jari tidak punya keadaan hover. Bangun hanya untuk seluler dan dua keadaan khas desktop luput dari pemeriksaan — dan salah satunya memang rusak: cincin fokus gohud tidak terlihat pada tombol primer. Panelnya berwarna aksen dan cincinnya pun begitu: 1,00:1, warna yang sama digambar di atas dirinya sendiri. Bergerak dengan papan ketik, tak ada cara untuk tahu Anda sedang berada di mana.

Baris tombol yang sama dalam tiga keadaan — normal, hover tetikus, fokus papan ketik
Dari atas ke bawah: normal · hover · fokus. Tombol berisi penuh mendapat cincin yang kontras dengan panelnya.

Tombol berisi penuh (GoPrimaryButton, GoDangerSolidButton) memakai cincin yang kontras dengan panelnya sendiri — gelap pada tema gelap, putih pada tema terang, kurung penanda sasaran yang gelap pada sci-fi. Pemeriksa kontras mengukur cincin fokus terhadap panel tempatnya berada, sehingga aturannya bertahan saat paletnya berubah (WCAG 2.4.11 meminta 3:1 pada penanda fokus).

Widget HUD

GoHudAnchor — sembilan titik

Menghormati area aman dan margin tepi. Berikan landscape_spot dan ia berpindah saat lanskap — kontrol yang duduk di tengah bawah pada mode potret bisa pindah ke kanan bawah.

Kenapa ia ada. Ditulis manual untuk tiap bagian HUD, anchor dan offset-nya akan melenceng: bar darah berakhir di bawah lubang kamera pada perangkat ber-notch, dan tombol kontrol mendarat di atas gesture bar saat lanskap. Hitung-hitungan itu tinggal di satu tempat.

Menjaga konten tidak masuk ke bawah HUD

Ketika layar yang bergulir berbagi tampilan dengan HUD, kontennya menyelinap ke bawahnya dan kedua kumpulan teksnya bertumpuk sampai tak satu pun terbaca. Itu terjadi dua kali di add-on ini: teks contoh sebuah kolom masukan terjepit di antara slot cepat, dan kenop sakelar pada setelan mendarat di atas bar darah.

form.avoid_hud = true                  # menjauh dari setiap GoHudAnchor yang terlihat
joystick_anchor.reserve_space = false  # …kecuali yang hanya muncul di bawah jari

Setiap persegi dihindari ke arah yang paling sedikit memakan luas. Bar di kanan atas diputari ke bawah pada ponsel potret (13% dari tingginya) dan ke samping pada lanskap (21% dari lebarnya) — menghindarinya secara vertikal pada lanskap akan memakan 27% dari layar. Ruang yang sudah direlakan dikurangkan lebih dulu sebelum persegi berikutnya diukur.

Bagian-bagian HUD juga bertabrakan satu sama lain

Kesembilan titik itu membagi layar; mereka tidak menjamin bagian-bagiannya saling luput. Sebuah snackbar lebar di tengah atas mendarat tepat di atas bar darah di kanan atas, menyembunyikan nilainya — Anda tidak bisa membaca berapa sisa darahnya.

notice_anchor.avoid_peers = true      # turun ke bawah HUD tetap
notice_anchor.reserve_space = false   # dan tidak mendorong halamannya selagi ia muncul

Ia menyingkir secara vertikal saja — menyingkir ke samping juga akan membuat toast yang terpusat muncul di tempat yang berbeda-beda setiap kali. Dan ia hanya menghindari bagian yang tidak ikut menyingkir sendiri: kalau keduanya mengalah, keduanya akan bertukar tempat selamanya.

GoBar — darah, mana, pengalaman

var hp := GoBar.new()
hp.label_text = "HP"
hp.ink = GoUi.color(GoTheme.DANGER_FILL)   # token khusus isian
hp.set_values(320, 500)                     # "320 / 500"

Perubahannya dilandaikan selama 0,18 detik — bar darah yang melompat tidak memberi tahu Anda seberapa keras Anda terpukul. reduce_motion membuatnya seketika. Angka besar disingkat menjadi 12.3k supaya lebar bar-nya tidak bergetar saat jumlah digitnya berubah.

GoSlot — satu slot cepat

Ikon, jumlah, waktu jeda, dan pintasan pada satu muka. Menggantung lencana pada lingkaran kecil membuat tiap slot punya lebar berbeda dan barisannya goyah.

Ukuran terlihat dan ukuran sentuh berbeda. Slot yang berdempetan punya kotak sentuh 48dp yang saling tumpang tindih; tumpang tindihnya jatuh ke slot yang pusatnya lebih dekat — beri tahu mereka satu sama lain lewat touch_peers.

keyboard_focus mati secara default, supaya barisan delapan slot tidak menghalangi pengguna papan ketik dari setiap kontrol setelan dalam urutan Tab. Nyalakan bila papan ketik atau gamepad adalah satu-satunya input.

GoJoystick — stik virtual

ModePerilaku
FIXEDSelalu di tempat yang sama — mudah ditemukan tanpa melihat
FOLLOWMuncul di tempat ibu jari mendarat
RELATIVETerus mengikuti ibu jari setelah muncul — nyaman untuk gerakan panjang

Vector2 dari moved panjangnya 0–1, jadi Anda bisa langsung mengalikannya dengan sebuah kecepatan; nilainya tidak berubah mengikuti ukuran layar atau DPI.

GoIconButton — terlihat kecil, ditekan besar

Hanya aman selama saudara-saudaranya mengabaikan input. Bila area yang diperlebar itu menutupi tombol berikutnya, tombol itu berhenti merespons. Tombol ikon yang berjajar butuh touch_peers.