SonolusHaniwa
  • 1. 概述
  • 2. ハニプレ
  • 3. ユメステ
  • 4. Stellarity
  • 5. Phigros
  • 首页

    • 1. 概述
  • 玩家

    • 2. 安装服务
    • 3. 配置文件标准
    • 4. 服务使用方法
  • 开发者

    • 5. 自定义搜索函数
    • 6. 自定义资源创建接口
    • 7. 插件开发标准
  • 其他

    • 8. 更新日志
    • 9. 关于 srp 资源包
  • 1. 搭建开发环境
  • 2. Sonolus 基础
  • 3. 配置项目信息
  • 4. 基本数据类型
  • 5. 函数与语句块
  • 6. 注意事项
  • 1. 游玩模式基础
  • 1. 概述
  • 2. ハニプレ
  • 3. ユメステ
  • 4. Stellarity
  • 5. Phigros
  • 首页

    • 1. 概述
  • 玩家

    • 2. 安装服务
    • 3. 配置文件标准
    • 4. 服务使用方法
  • 开发者

    • 5. 自定义搜索函数
    • 6. 自定义资源创建接口
    • 7. 插件开发标准
  • 其他

    • 8. 更新日志
    • 9. 关于 srp 资源包
  • 1. 搭建开发环境
  • 2. Sonolus 基础
  • 3. 配置项目信息
  • 4. 基本数据类型
  • 5. 函数与语句块
  • 6. 注意事项
  • 1. 游玩模式基础
  • 基础知识

    • 1. 搭建开发环境
    • 2. Sonolus 基础
    • 3. 配置项目信息
    • 4. 基本数据类型
    • 5. 函数与语句块
    • 6. 注意事项
  • 游玩模式

    • 1. 游玩模式基础

配置项目信息

基础配置

无论您进行什么项目,都需要使用配置文件来指定项目的基本信息(例如 NodeJS 项目中的 package.json),Sonolus.h 也是如此。您需要提供项目的基本信息,我们才能帮助您将项目添加到 Sonolus Server 中去。

在 Sonolus.h 中,我们使用 package.json 来配置引擎项目。

在您初始化结束的引擎根目录下会有一个预设的 package.json 文件,可根据下面的注释来修改您的项目信息(由于 json 文件不支持注释,下面代码中每行 // 及以后的所有内容都需要删除才能够使用)。

{
  "skin": // 皮肤信息
  {
    "name": "none", // 皮肤 id
  	"i18n": // 对不同语言启用不同配置
    [
  	  {
  	  	"localization": "default", // 语言 id,default 为所有语言通用
  	    "title": "None", // 皮肤标题
        "subtitle": "Sonolus", // 皮肤副标题
        "author": "-", // 皮肤作者
        "description": "" // 皮肤描述,用 \n 表示换行
  	  }
  	]
  },
  "background": // 背景信息
  {
    "name": "none", // 背景 id
  	"i18n": // 对不同语言启用不同配置
    [
  	  {
  	  	"localization": "default", // 语言 id,default 为所有语言通用
  	    "title": "None", // 背景标题
        "subtitle": "Sonolus", // 背景副标题
        "author": "-", // 背景作者
        "description": "" // 背景描述,用 \n 表示换行
  	  }
  	]
  },
  "effect": // 音效信息
  {
    "name": "none", // 音效 id
  	"i18n": // 对不同语言启用不同配置
    [
  	  {
        "localization": "default", // 语言 id,default 为所有语言通用
  	  	"title": "None", // 音效标题
        "subtitle": "Sonolus", // 音效副标题
        "author": "-", // 音效作者
        "description": "" // 音效描述,用 \n 表示换行
  	  }
  	]
  },
  "effect": // 粒子效果信息
  {
    "name": "none", // 粒子效果 id
  	"i18n": // 对不同语言启用不同配置
    [
  	  {
        "localization": "default", // 语言 id,default 为所有语言通用
  	  	"title": "None", // 粒子效果标题
        "subtitle": "Sonolus", // 粒子效果副标题
        "author": "-", // 粒子效果作者
        "description": "" // 粒子效果描述,用 \n 表示换行
  	  }
  	]
  },
  "engine": // 引擎信息
  {
    "name": "test", // 引擎 id
    "i18n": // 对不同语言启用不同配置
    [
      {
        "localization": "default", // 语言 id,default 为所有语言通用
        "title": "Test Engine", // 引擎标题
        "subtitle": "Sonolus Test Engine", // 引擎副标题
        "author": "-", // 引擎作者
        "skin": "none", // 引擎默认皮肤 id,要求在 Sonolus Server 中存在
        "background": "none", // 引擎默认背景 id,要求在 Sonolus Server 中存在
        "effect": "none", // 引擎默认音效 id,要求在 Sonolus Server 中存在
        "particle": "none", // 引擎默认粒子效果 id,要求在 Sonolus Server 中存在
        "description": "" // 引擎描述,用 \n 表示换行
      }
    ]
  },
  "effect": // 测试关卡信息
  {
    "name": "test", // 测试关卡 id
    "generate": "", // 关卡数据生成指令
  	"i18n": // 对不同语言启用不同配置
    [
  	  {
        "localization": "default", // 语言 id,default 为所有语言通用
  	  	"title": "Test Level", // 测试关卡标题
        "rating": 1, // 测试关卡难度
        "artists": "-", // 测试关卡艺术家
        "author": "-", // 测试关卡作者
        "engine": "test", // 引擎 id 
        "skin": "", // 皮肤 id,为空表示默认皮肤
        "background": "", // 背景 id,为空表示默认背景
        "effect": "", // 音效 id,为空表示默认音效
        "particle": "", // 粒子效果 id,为空表示默认粒子效果
        "description": "" // 测试关卡描述,用 \n 表示换行
  	  }
  	]
  },
}

高级配置

下列是 package.json 详细结构,供您参考:

class SkinItemI18n {
    string title = ""; // 皮肤标题
    string subtitle = ""; // 皮肤副标题
    string author = ""; // 皮肤作者
    string description = ""; // 皮肤描述
    string localization = "default"; // 皮肤语言 id
};

class BackgroundItemI18n {
    string title = ""; // 背景标题
    string subtitle = ""; // 背景副标题
    string author = ""; // 背景作者
    string description = ""; // 背景描述
    string localization = "default"; // 背景语言 id
};

class EffectItemI18n {
    string title = ""; // 音效标题
    string subtitle = ""; // 音效副标题
    string author = ""; // 音效作者
    string description = ""; // 音效描述
    string localization = "default"; // 音效语言 id
};

class ParticleItemI18n {
    string title = ""; // 粒子效果标题
    string subtitle = ""; // 粒子效果副标题
    string author = ""; // 粒子效果作者
    string description = ""; // 粒子效果描述
    string localization = "default"; // 粒子效果语言 id
};

class EngineItemI18n {
    string title = ""; // 引擎标题
    string subtitle = ""; // 引擎副标题
    string author = ""; // 引擎作者
    string description = ""; // 引擎描述
    string skin = "none"; // 默认皮肤 id
    string background = "none"; // 默认背景 id
    string effect = "none"; // 默认音效 id
    string particle = "none"; // 默认粒子效果 id
    string localization = "default"; // 引擎语言 id
};

class LevelItemI18n {
    string title = ""; // 测试关卡标题
    int rating = 1; // 测试关卡难度
    string subtitle = ""; // 测试关卡艺术家
    string author = ""; // 测试关卡作者
    string description = ""; // 测试关卡描述
    string engine = "none"; // 引擎 id
    string skin = "none"; // 皮肤 id
    string background = "none"; // 背景 id
    string effect = "none"; // 音效 id
    string particle = "none"; // 粒子效果 id
    string localization = "default"; // 测试关卡语言 id
}

class ProjectConfig {
    class SkinItem {
        string name = "none"; // 皮肤 id
        vector<SkinItemI18n> i18n; // 皮肤配置组
    }skin; // 皮肤配置
    class BackgroundItem {
        string name = "none"; // 背景 id
        vector<BackgroundItemI18n> i18n; // 背景配置组
    }background; // 背景配置
    class EffectItem {
        string name = "none"; // 音效 id
        vector<EffectItemI18n> i18n; // 音效配置组
    }effect; // 音效配置
    class ParticleItem {
        string name = "none"; // 粒子效果 id
        vector<ParticleItemI18n> i18n; // 粒子效果配置组
    }particle; // 粒子效果配置
    class EngineItem {
        string name = "none"; // 引擎 id
        vector<EngineItemI18n> i18n; // 引擎配置组
    }engine; // 引擎配置
    class LevelItem {
        string name = "none"; // 测试关卡 id
        string generate = ""; // 关卡数据生成指令
        vector<LevelItemI18n> i18n; // 测试关卡配置组
    }level; // 测试关卡配置
}; // 项目配置文件

其中引擎配置组和关卡配置组中所有的 引擎/皮肤/背景/音效/粒子效果 的 id 都需要在 Sonolus Server 中存在或在 package.json 中定义过。

最近更新:: 2025/4/27 15:17
Contributors: LittleYang0531
Prev
2. Sonolus 基础
Next
4. 基本数据类型