cocos-dating-game/README.md
openclaw_frontend_developer 41e7ca05f1 Initial commit: Cocos Creator恋爱游戏引擎
- StoryManager: 剧情管理器
- DialogueBox: 对话框组件(带打字机效果)
- CharacterView: 立绘组件
- ChoiceButton: 选项按钮
- AffectionSystem: 好感度系统
- chapter1.json: 示例剧情
2026-03-11 04:54:43 +00:00

3.1 KiB
Raw Blame History

Cocos Dating Game

基于 Cocos Creator 3.x 的恋爱养成游戏引擎。

功能特性

  • 🎭 剧情系统 - 支持分支对话和选项
  • ❤️ 好感度系统 - 角色好感度等级
  • 🎬 立绘切换 - 多种表情和位置
  • 💾 存档系统 - 本地存储进度

项目结构

assets/
├── scripts/
│   ├── StoryManager.ts      # 剧情管理器
│   ├── DialogueBox.ts        # 对话框组件
│   ├── CharacterView.ts     # 立绘组件
│   ├── ChoiceButton.ts      # 选项按钮
│   └── AffectionSystem.ts   # 好感度系统
├── resources/
│   ├── backgrounds/         # 背景图
│   ├── characters/          # 角色立绘
│   │   └── {角色ID}/
│   │       ├── normal.png
│   │       ├── happy.png
│   │       ├── angry.png
│   │       └── smile.png
│   └── story/
│       └── chapter1.json    # 剧情脚本
└── scenes/
    └── MainScene.ts         # 主场景

快速开始

1. 安装 Cocos Creator

下载并安装 Cocos Creator 3.x

2. 创建项目

  1. 打开 Cocos Creator
  2. 选择 "新建项目" -> "空白项目"
  3. 将本项目 assets 目录下的文件复制到新项目中

3. 添加资源

resources 目录下添加:

  • 背景图 (1920x1080)
  • 角色立绘 (按角色ID和表情命名)
  • 音效/音乐 (可选)

4. 运行项目

点击 Cocos Creator 中的 "运行" 按钮

剧情脚本格式

参考 chapter1.json:

{
  "title": "第一章",
  "scenes": [
    {
      "id": "scene_1",
      "background": "bg.jpg",
      "characters": [
        {
          "id": "角色ID",
          "name": "显示名称",
          "emotion": "normal",
          "position": "center",
          "visible": true
        }
      ],
      "dialogue": [
        {
          "speaker": "说话者",
          "text": "对话内容",
          "emotion": "happy"
        }
      ],
      "choices": [
        {
          "text": "选项文本",
          "nextScene": "下一场景ID",
          "affectionChange": { "角色ID": 5 }
        }
      ]
    }
  ]
}

API 文档

StoryManager

// 加载章节
StoryManager.instance.loadChapter('chapter1');

// 跳转到指定场景
StoryManager.instance.goToScene('scene_id');

// 重新开始
StoryManager.instance.restart();

AffectionSystem

// 获取好感度
const value = AffectionSystem.instance.getAffection('角色ID');

// 检查等级
const isLover = AffectionSystem.instance.hasReachedLevel(
  '角色ID', 
  AffectionLevel.LOVER
);

// 保存存档
const saveData = AffectionSystem.instance.save();

// 加载存档
AffectionSystem.instance.load(saveData);

角色立绘规格

位置 尺寸
left/right 400x600 px
center 500x700 px

表情文件命名:{emotion}.png 例如:normal.png, happy.png, angry.png, sad.png, surprised.png, smile.png

许可证

MIT License

贡献

欢迎提交 Issue 和 Pull Request