gohud

Формы, которые играм действительно нужны

← Виджеты

Знакомые по вебу формы, пересобранные вокруг того, что от них нужно игре.

GoRewardCalendar — ежедневный вход

Выбор даты в игре почти никогда не нужен. А форма календаря — нужна: для наград за вход, где важно, какой у вас день подряд, а не какое сегодня число.

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

Нажимается только сегодняшняя ячейка — кнопка, которая на нажатие не отвечает, читается как сломанная. Полученное, сегодняшнее и будущее различаются сразу тремя вещами: знаком галочки, акцентной рамкой и притемнением.

GoRadar и GoDonut — характеристики с одного взгляда

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)          # пунктирный слой поверх

var share := GoDonut.make([{"label": "Физический", "value": 620}, {"label": "Магический", "value": 340}])
card.add_child(share.legend())

Значения радара лежат в 0–1, потому что «сколько это — полностью» решает игра: сырые 120 STR рядом с 45 INT нарисовали бы неправду. Значения кольца сырые, и делит за вас оно само; после пяти долей остальное сворачивается, потому что шестая доля — ниточка, которую никто не прочтёт. Линия сравнения пунктирная, а не просто другого цвета, а легенда пишет процент словами.

GoCarousel — баннеры и выбор персонажа

banners.set_pages([promo, event, pack])
banners.autoplay_seconds = 5.0             # по умолчанию выключено

Сам он не листается, пока вы не попросите, и пять секунд — нижняя граница: баннер, который меняется каждые три, забирает текст раньше, чем его прочтут. Касание сбрасывает таймер, а при включённом reduce_motion он не листается сам никогда. Точки нажимаются по минимуму для пальца, хотя нарисованная точка мала.

GoKbd — подсказки клавиш, которые не врут

hint.add_child(GoKbd.for_action(&"interact"))   # читает настоящую привязку

Жёстко вписанное «Нажмите F» продолжает говорить F после того, как игрок переназначил клавиши, — самая частая ложь в интерфейсе для ПК. for_action() читает InputMap; если действие привязано к геймпаду, он возвращает пустоту и виджет прячется, потому что «Нет» было бы ложью само по себе. На Android и iOS он прячется сам.