项目目录结构与文件组织
最小可运行项目
一个能跑起来的吉里吉里2 项目,最少只需要:
MyGame/
├── krkr.eXe ← 引擎本体
├── krdevui.dll ← 调试 DLL
├── base/ ← KAG 系统目录(从 SDK 拷贝)
│ ├── kag/ ← KAG 脚本引擎核心
│ ├── startup.tjs ← 启动脚本
│ └── ...
└── data/ ← 你的游戏资源
└── startup.tjs ← 项目入口脚本
把 krkr.eXe 和一个名为 data 的目录放在一起,data 里有 startup.tjs,就能直接双击 exe 启动。但项目目录不要命名为 data(分发时可能与引擎内置的 data 目录冲突)。
推荐的项目目录布局
实际开发时建议这样组织:
MyGame/
├── krkr.eXe
├── krdevui.dll
├── base/ ← KAG 系统文件(SDK 原样拷贝)
├── plugins/ ← 第三方插件目录
│ ├── live2d.tpm
│ └── ...
├── scenario/ ← KAG scenario 脚本
│ ├── 01-prologue.ks
│ ├── 02-common.ks
│ └── main.ks ← KAG 通常从 main.ks 开始
├── script/ ← TJS2 自定义脚本
│ ├── GameManager.tjs
│ └── SaveLoad.tjs
├── image/ ← 图片素材
│ ├── bg/ ← 背景
│ ├── fg/ ← 立绘
│ ├── chara/ ← 角色立绘
│ └── ui/ ← UI 界面
├── sound/ ← 音频素材
│ ├── bgm/
│ ├── se/
│ └── voice/
├── movie/ ← 视频
├── data/ ← XP3 打包前的资源
│ └── startup.tjs ← 入口脚本
└── releaser/ ← 打包工具(SDK 自带)
文件命名约定
- KAG scenario 文件扩展名为
.ks - TJS2 脚本扩展名为
.tjs - 图片用
.tlg(推荐)、.png、.jpg - 音频用
.ogg(BGM 推荐)、.wav(SE) - 视频用
.wmv、.mpg(原生支持),或通过插件扩展
命名风格建议用英文或日文拼音,避免中文文件名在某些打包后出现问题。
入口脚本 startup.tjs 写什么
项目根目录(或 XP3 包内)的 startup.tjs 是引擎启动时执行的第一个文件。最简形式:
// 初始化 KAG
var kag = KAG.manager;
// 从 scenario/main.ks 开始运行
kag.start("scenario/main.ks");
这就够了。复杂项目可能还会在这里初始化全局变量、加载存档、设置窗口标题等。
KAG scenario 的入口
KAG 脚本通常以 main.ks 为入口。在 main.ks 的开头一般会有:
; 加载公共定义
[kag load storage="scenario/00-header.ks"]
; 显示标题画面
[kag jump storage="scenario/01-title.ks"]
关于 data 和 content-data
引擎启动时会按优先级搜索项目目录:
- 命令行指定的路径
- 名为
data的目录 - 名为
content-data的目录 - 同目录下的 XP3 文件
所以如果你把资源包命名为 data.xp3,引擎会自动识别。这是吉里吉里社区的约定。
存档位置
默认存档保存在:
- Windows XP:项目目录下的
save/文件夹 - Windows Vista+:
%APPDATA%/YourGameName/save/或项目目录下(取决于启动方式)
可以通过 TJS2 的 Storage 类自定义存档路径。