GoDrawer — 옆에서 나오는 패널
GoSheet 는 아래에서 올라온다. 세워 쥔 휴대폰에는 그게 맞다. 태블릿이나 데스크톱에서는
같은 시트가 게임을 덮어 버린다 — 그 자리에는 옆에서 나오는 패널을 쓴다.
bag.side = GoDrawer.Side.RIGHT
bag.open("인벤토리")
패널은 화면 끝까지 가지만 내용은 안전영역 안에 머문다. 아니면 둥근 모서리가 첫 줄을 잘라 먹는다.
LEFT 는 아랍어에서도 화면의 왼쪽이다. "글이 시작하는 쪽" 이 요점이라면
follow_text_direction 을 켠다 — RTL 에서 좌우가 뒤집힌다.
GoPopover — 붙어서 뜨는 카드
GoPopover.open(slot, item_card(item))
GoSurface 의 붙는 배치에 레이어·표면·기준 컨트롤·정리까지 미리 이어 둔 것이다 —
게임마다 몇 번이고 다시 쓰는 그 열 줄. 한 번에 하나만 열린다. 카드가 겹겹이 쌓이면 화면이 묻히고
어느 카드가 어느 칸의 것인지 아무도 알 수 없다. 스크림은 투명하다 — 장비를 견주려고 연 카드가 그
장비를 어둡게 만들면 안 된다.
마우스를 올리면 뜨는 툴팁이 아니다. 터치에는 올려 두는 동작이 없다. 마우스로만 드러나는 것은
플레이어의 절반에게는 없는 것과 같다.
GoContextMenu — 길게 누르기와 오른쪽 클릭
GoContextMenu.attach(item_slot, [
{"text": "사용", "action": use},
{"separator": true},
{"text": "버리기", "action": drop, "danger": true},
])
PopupMenu 는 엔진에 이미 있다. 없는 것은 제스처다 — 0.5초를 눌러야 열리고,
손가락이 움직이는 순간 취소된다. 그래서 목록을 넘기다가 메뉴가 튀어나오는 일이 없다. 무엇을
눌렀느냐에 따라 항목이 달라지면 배열 대신 Callable 을 넘긴다.
길게 누르기에는 두 번째 길이 있어야 한다. 숨은 제스처를 스스로 찾아내는 사람은 없다 — 눈에
보이는
⋯ 버튼(open_at())이나 아이콘, 아니면 첫 실행 안내 투어를 함께 둔다.
GoConsole — 개발자 콘솔
console.register("give", "아이템 지급: give <id> <개수>", give)
console.toggle()
치트와 디버그 명령을 둔다. 치는 대로 걸러 주는 목록이 있어 아무도 명령을 외울 필요가 없고, 화살표 키에 기록이 남는다. 무엇보다 위에 있으므로 확인창 위에서도 디버그할 수 있다.
릴리스 빌드에서는 열리기를 거부한다.
debug_only 는 기본으로 켜져 있다. 치트 명령이
플레이어 손에 들어가면 게임의 경제는 첫날에 끝난다.