Skip to content

快速开始

安装与运行示例

在仓库根目录执行:

powershell
go test ./...
go run ./example

示例入口在 example/main.go,展示了背景、立绘、输入名字、气泡台词、拖放、成就、分支、启动页和画廊配置。

最小游戏

go
package main

import (
    "log"

    "github.com/WindyPear-Team/galgo"
    "github.com/WindyPear-Team/galgo/style"
)

func main() {
    engine, err := galgo.NewEngine(galgo.Config{
        ScreenWidth:     1280,
        ScreenHeight:    720,
        Title:           "My Galgo Game",
        FontSize:        18,
        TypewriterSpeed: 2,
        SaveDir:         "./saves",
        Style:           style.DefaultUIStyle(),
    }, nil)
    if err != nil {
        log.Fatal(err)
    }

    script := galgo.NewScript()
    script.AddNode("start", []galgo.Step{
        galgo.Bg("room", "assets/bg_room.png"),
        galgo.Sprite("heroine", "heroine_smile", "assets/heroine.png", galgo.PosCenter),
        galgo.Text("heroine", "你好,欢迎来到 Galgo。"),
    })

    if err := engine.Run(script, "start"); err != nil {
        log.Fatal(err)
    }
}

核心对象

galgo.Engine 是运行时主体,内部管理:

  • ResourceManager:图片、音频、字体和 DLC 资源根。
  • AudioManager:BGM、SE、Voice。
  • ScriptPlayer:节点和 Step 执行。
  • SaveSystem:存档读写。
  • Preferences:玩家偏好。
  • Cursor:鼠标样式。
  • Steam:可选 Steamworks 管理器。

galgo.Config 是初始化入口,常用字段包括窗口尺寸、标题、字体、存档目录、UI 样式、翻译器、画廊、成就、启动页、光标、Steam 和存档配置。

资源路径

默认会先尝试从传入的 embed.FS 打开资源,再尝试本地文件路径,最后尝试 DLC 或其他外部资源根。

go
//go:embed assets/*
var assets embed.FS

engine, err := galgo.NewEngine(config, &assets)

不使用 embed.FS 时传 nil,资源会从工作目录读取。

Released under the project license.