Skip to content

UI 样式和对话框

Galgo 的基础 UI 外观由 style.UIStyle 控制。它覆盖对话框、角色名标签、选择按钮、快捷按钮、菜单、标题页和提示条等常用元素。

默认样式

go
customStyle := style.DefaultUIStyle()

把样式传给引擎:

go
engine, err := galgo.NewEngine(galgo.Config{
    Style: customStyle,
}, nil)

如果 Config.Style 没有设置必要颜色,NewEngine 会使用默认样式。

对话框字段

常用对话框字段:

  • DialogueBoxColor:对话框背景色。
  • DialogueBorderColor:边框颜色。
  • DialogueBorderWidth:边框宽度。
  • DialogueBorderRadius:圆角。
  • DialoguePaddingXDialoguePaddingY:内部文字边距。
  • DialogueMargin:对话框距离屏幕边缘的间距。
  • DialogueHeight:对话框高度。
  • DialogueBoxStyle:对话框位置。
  • TextColor:正文颜色。
  • TextMutedColor:弱化文字颜色。
  • TextFontSize:正文大小。
  • LineSpacing:行距。

示例:

go
ui := style.DefaultUIStyle()
ui.DialogueBoxColor = color.RGBA{30, 20, 45, 230}
ui.DialogueBorderColor = color.RGBA{236, 72, 153, 180}
ui.DialogueBorderWidth = 2.5
ui.DialogueBorderRadius = 16
ui.DialoguePaddingX = 26
ui.DialoguePaddingY = 22

对话框位置

DialogueBoxStyle 支持:

  • style.BoxStyleBottom:默认底部对话框。
  • style.BoxStyleTop:顶部对话框。
  • style.BoxStyleCenter:屏幕中央对话框。
go
ui.DialogueBoxStyle = style.BoxStyleBottom

普通台词使用对话框:

go
galgo.Text("Aria", "今天也一起回家吧。")

旁白可以传空角色名:

go
galgo.Text("", "夕阳从窗边落下。")

气泡台词

气泡台词会尽量靠近说话角色的立绘:

go
galgo.TextBubble("Aria", "小声点。")

如果没有对应角色立绘,气泡会退回到屏幕中上部。气泡仍然支持富文本、变量插值和翻译 key。

名字标签

常用字段:

  • NameBgColor
  • NameBorderColor
  • NameTextColor
  • NameBorderRadius
  • NameFontSizeOffset

NameFontSizeOffset 是相对 Config.FontSize 的偏移,而不是绝对字号。

选择按钮

选择按钮字段:

  • ChoiceBgColor
  • ChoiceBorderColor
  • ChoiceTextColor
  • ChoiceHoverBgColor
  • ChoiceHoverBorderColor
  • ChoiceWidth
  • ChoiceHeight
  • ChoiceSpacing
  • ChoiceBorderRadius

示例:

go
ui.ChoiceWidth = 560
ui.ChoiceHeight = 48
ui.ChoiceSpacing = 14
ui.ChoiceBorderRadius = 10

快捷按钮

对话框底部的快捷按钮包括:

  • LOG
  • AUTO
  • SKIP
  • SAVE
  • LOAD
  • MENU

相关样式字段:

  • QuickBtnBgColor
  • QuickBtnHoverBgColor
  • QuickBtnTextColor
  • QuickBtnActiveBgColor
  • QuickBtnActiveTextColor
  • QuickBtnBorderRadius

快捷按钮行为目前是内置的。如果要完全改变快捷按钮布局,可以通过 Config.Hooks.OnDrawDialogueBox 接管对话框绘制,或后续扩展对应的模块化 UI 配置。

标题页样式

标题页的基础文字样式由这些字段控制:

  • TitleTextColor
  • TitleOptionColor
  • TitleOptionHoverColor
  • TitleSubtitleColor
  • TitleFontSize
  • TitleOptionFontSize

标题页按钮和模块的结构由 Config.TitleMenu 控制,详见 标题页和首页模块

提示条

Engine.ShowToast 会显示短消息:

go
engine.ShowToast("设置已保存")

提示条样式字段:

  • ToastBgColor
  • ToastTextColor
  • ToastBorderColor
  • ToastBorderRadius

文本绘制辅助

自定义 UI 模块中可以使用 Engine.DrawText

go
Draw: func(e *galgo.Engine, screen *ebiten.Image, m galgo.TitleModule, b galgo.UIRect) bool {
    e.DrawText(screen, "Custom title module", m.X+20, m.Y+24, 16, color.White)
    return true
}

坐标按 1280x720 的逻辑尺寸填写,引擎会按当前窗口缩放。

Released under the project license.