gohud

Поверх экрана

← Виджеты

GoDrawer — боковая панель

GoSheet приходит снизу, и для телефона в книжной ориентации это правильно. На планшете или настольном компьютере тот же лист накрывает игру — там панель приходит сбоку.

bag.side = GoDrawer.Side.RIGHT
bag.open("Сумка")

Панель доходит до края экрана, а содержимое остаётся внутри безопасной области, иначе скруглённый угол срежет первую строку. LEFT означает левый край экрана даже в арабском; включите follow_text_direction, когда смысл именно в «стороне начала», и она перевернётся при письме справа налево.

GoPopover — карточка с привязкой

GoPopover.open(slot, item_card(item))

Это привязанное размещение GoSurface, где слой, поверхность, якорь и уборка уже связаны, — те десять строк, которые каждая игра пишет снова и снова. Открыта всегда одна, потому что сложенные стопкой карточки хоронят экран и понять, какая карточка какому слоту принадлежит, нельзя. Подложка прозрачная: карточка, открытая, чтобы сравнить снаряжение, не должна это снаряжение затемнять.

Это не всплывающая подсказка по наведению. У касания наведения нет, поэтому всё, что может открыть только мышь, для половины ваших игроков невидимо.

GoContextMenu — долгое нажатие и правый клик

GoContextMenu.attach(item_slot, [
    {"text": "Использовать", "action": use},
    {"separator": true},
    {"text": "Выбросить", "action": drop, "danger": true},
])

PopupMenu в движке уже есть. Чего нет — так это жеста: полсекунды до открытия, отмена в тот момент, когда палец сдвинулся, поэтому прокрутка списка меню не вызывает никогда. Передайте Callable вместо массива, когда пункты зависят от того, на что нажали.

Долгому нажатию нужен второй вход. Скрытый жест не находит никто — дайте ему в пару видимую кнопку (open_at()), иконку или обучающую подсказку при первом запуске.

GoConsole — консоль разработчика

console.register("give", "Выдать предмет: give <id> <count>", give)
console.toggle()

Читерские и отладочные команды, с палитрой, которая фильтрует по мере набора, чтобы их не приходилось запоминать, и с историей на клавишах со стрелками. Она лежит поверх всего, поэтому отлаживать можно и поверх диалога.

В релизной сборке она открываться отказывается. debug_only включён по умолчанию; читерские команды в руках игрока кончают экономику игры в первый же день.