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 引擎里本来就有。没有的是那个手势:按住半秒才打开,
手指一动就取消,这样滑动列表时绝不会弹出菜单。菜单项要看你按的是谁才定得下来时,
传一个 Callable,而不是数组。
长按需要第二个入口。 藏起来的手势没人发现得了 —— 请给它配上一颗看得见的
⋯ 按钮(open_at())、一个图标,或者第一次进来时的一次引导。
GoConsole —— 开发者控制台
console.register("give", "发放一件物品:give <id> <count>", give)
console.toggle()
作弊和调试命令;命令面板会随着你输入即时筛选,谁也不用背下来,方向键上还留着历史记录。 它盖在所有东西之上,所以对话框开着也照样调试。
在正式版里它拒绝打开。
debug_only 默认是开着的;
作弊命令一旦落到玩家手里,一款游戏的经济系统第一天就完了。