gohud

Những hình dạng mà game thật sự dùng

← Widget

Những hình dạng quen thuộc của web, dựng lại quanh cái mà một game cần ở chúng.

GoRewardCalendar — điểm danh hằng ngày

Một bộ chọn ngày gần như chẳng bao giờ có ích trong game. Hình dạng của một cuốn lịch thì có — cho phần thưởng điểm danh, nơi thứ quan trọng là bạn đang ở ngày thứ mấy, chứ không phải hôm nay là ngày nào.

var attendance := GoRewardCalendar.make(days, claimed_until)
attendance.claimed.connect(func(day: int) -> void: server.claim_day(day))

Chỉ ô của hôm nay là bấm được — một cái nút bấm vào mà không làm gì thì người ta đọc ra là hỏng. Ô đã nhận, ô hôm nay và ô sắp tới khác nhau ở ba thứ cùng lúc: một dấu tích, một cái viền màu nhấn và độ mờ.

GoRadarGoDonut — chỉ số nhìn một cái là thấy

var stats := GoRadar.make({"STR": 0.85, "AGI": 0.5, "INT": 0.3, "VIT": 0.7, "LUK": 0.45})
stats.set_compare(with_new_sword)          # một lớp phủ nét đứt

var share := GoDonut.make([{"label": "Vật lý", "value": 620}, {"label": "Phép thuật", "value": 340}])
card.add_child(share.legend())

Giá trị của radar nằm trong khoảng 0–1 vì thế nào là đầy là quyết định của từng game — 120 STR thô đặt cạnh 45 INT sẽ vẽ ra một lời nói dối. Giá trị của donut thì để thô và nó tự chia giúp bạn; quá năm miếng thì nó gộp phần còn lại, vì miếng thứ sáu chỉ còn là một sợi chỉ chẳng ai đọc nổi. Đường so sánh là nét đứt chứ không chỉ là thêm một màu khác, và phần chú giải in tỷ lệ phần trăm ra thành chữ.

GoCarousel — banner và màn chọn nhân vật

banners.set_pages([promo, event, pack])
banners.autoplay_seconds = 5.0             # mặc định tắt

Nó không tự chuyển trang trừ khi bạn yêu cầu, và năm giây là mức sàn: một banner cứ ba giây đổi một lần sẽ lấy mất dòng chữ trước khi người ta đọc xong. Chạm vào nó là đồng hồ đếm lại từ đầu, và khi bật reduce_motion thì nó không bao giờ tự chuyển. Mấy cái chấm bấm được ở kích thước chạm tối thiểu, dù cái chấm được vẽ ra thì nhỏ.

GoKbd — gợi ý phím không nói dối

hint.add_child(GoKbd.for_action(&"interact"))   # đọc đúng phím đang gán

Một dòng "Nhấn F" viết chết trong code vẫn cứ nói F sau khi người chơi đổi phím — lời nói dối phổ biến nhất trong giao diện PC. for_action() đọc InputMap; nếu hành động đó lại được gán vào tay cầm thì nó trả về rỗng và widget tự ẩn, vì "Không có" sẽ lại là một lời nói dối khác. Trên Android và iOS nó tự ẩn mình.