gohud

Formas que los juegos usan de verdad

← Widgets

Formas conocidas de la web, reconstruidas alrededor de lo que un juego necesita de ellas.

GoRewardCalendar — asistencia diaria

Un selector de fechas casi nunca es útil en un juego. La forma de un calendario sí lo es — para las recompensas por asistencia, donde lo que importa es en qué día vas, no qué fecha es.

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

Solo se puede pulsar la casilla de hoy — un botón que no hace nada al pulsarlo se lee como algo roto. Reclamado, hoy y futuro se diferencian por tres cosas a la vez: un glifo de marca, un borde de acento y un atenuado.

GoRadar y GoDonut — estadísticas de un vistazo

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)          # una superposición discontinua

var share := GoDonut.make([{"label": "Físico", "value": 620}, {"label": "Mágico", "value": 340}])
card.add_child(share.legend())

Los valores del radar van de 0 a 1 porque qué cuenta como lleno es una decisión del juego — un 120 de STR en bruto junto a un 45 de INT dibujaría una mentira. Los valores del donut van en bruto y él divide por ti; pasadas cinco porciones agrupa el resto, porque una sexta porción es un hilo que nadie puede leer. La línea de comparación es discontinua, no solo de otro color, y la leyenda escribe el porcentaje en texto.

GoCarousel — banners y selección de personaje

banners.set_pages([promo, event, pack])
banners.autoplay_seconds = 5.0             # desactivado por omisión

No avanza por su cuenta a menos que se lo pidas, y cinco segundos es el suelo: un banner que cambia cada tres se lleva el texto antes de que se lea. Tocarlo reinicia el temporizador, y con reduce_motion activado no avanza nunca solo. Los puntos se pueden pulsar con el mínimo táctil aunque el punto dibujado sea pequeño.

GoKbd — pistas de teclas que no mienten

hint.add_child(GoKbd.for_action(&"interact"))   # lee la asignación real

Un "Pulsa F" escrito a mano sigue diciendo F después de que el jugador reasigne las teclas — la mentira más común en una interfaz de PC. for_action() lee InputMap; si la acción está asignada a un mando, devuelve vacío y el widget se oculta, porque "Ninguna" sería otra mentira suya. En Android y iOS se oculta solo.