oc-english README

The project's README from github.com/yczz/oc-english. As one markdown file: README.md.

带着OC学英语

创建一只属于你的 Q 版 OC,给它捏脸、换装、布置小家——而赚积分的唯一方式,是认真学英语。

Tauri 2.0 桌面应用 · Rust 后端 + Vanilla JS 前端 · SVG 矢量 Q 版角色 · PixiJS 等距 2.5D 房间 · macOS


📸 界面一览

注册档案 捏脸工坊
注册屏 捏脸
衣橱换装(一键同款蝴蝶少女) 2.5D 小家
衣橱 房间
商店 学习中心(13 册教材)
商店 学习中心
跟练(四选一 + 听力) 单元考成绩单
跟练 考试成绩

截图由 npm run screenshots 自动生成(无头 Chrome + 契约级后端 mock 跑真实前端)。


🎮 游戏介绍

🧒 创建你的 OC(免费 · 不限数量)

起个名字就能迎接一只空白小人。可以创建多只 OC,每只都有独立的脸蛋、衣柜和小家,随时在人物栏一键切换。

🎨 捏脸 + 换装

🏠 2.5D 温馨小家

📖 学英语(人教版同步)

⭐ 积分经济

积分是唯一的货币,只能靠学习赚取,用来买装扮和家具装扮 OC 与小家。

事件 积分
🎁 新手礼包 +200
🎵 跟练答对一张卡 +2
🏆 单元考首次通过 +100
📈 再次通过且刷新最佳 每多对 1 题 +10

🛠️ 技术栈

层 技术
壳 Tauri 2.0(Rust),包体 ~10MB
后端 Rust:存档/商店/题库/出题/考试判分全部在 Rust 侧,数据编译进二进制
前端 Vanilla JS(ES Modules,零框架零打包器)
角色 SVG 矢量分层组装(素体 → 装扮 9 层 → 五官 → 发型)
房间 PixiJS(WebGL)等距 2.5D 场景,SVG → 纹理
存档 JSON,位于系统应用支持目录

📁 目录结构

├── src/                    # 前端(Vanilla JS)
│   ├── index.html          # 单页界面(注册/主界面/学习中心 + 7 个弹窗)
│   ├── main.js             # 交互逻辑(捏脸/衣橱/预设/商店/房间/跟练/考试)
│   ├── styles.css          # 暖色卡通主题
│   ├── lib/pixi.min.js     # PixiJS(本地 UMD)
│   └── js/
│       ├── api.js          #   Tauri invoke 封装
│       ├── character.js    #   素体 + 五官/发型/装扮分层渲染器
│       ├── wardrobe.js     #   50 件装扮 SVG 素材(9 部位)
│       ├── furniture.js    #   18 件家具 SVG 素材
│       ├── room.js         #   等距 2.5D 房间(Pixi,拖拽/吸附/深度排序)
│       └── tts.js          #   单词朗读
├── src-tauri/              # Rust 后端
│   ├── src/
│   │   ├── models.rs       #   存档数据结构(档案/人物/脸型/装扮/进度)
│   │   ├── commands.rs     #   Tauri 指令(注册/创建/换装/购买/摆放…)
│   │   ├── content.rs      #   13 册教材 + 语法卡加载
│   │   ├── questions.rs    #   跟练卡与 15 题考卷生成、判分
│   │   └── shop.rs         #   商店目录(50 装扮 + 18 家具)
│   └── data/               # books/(13 册 JSON)+ wardrobe/furniture/grammar
├── test/                   # 冒烟测试(jsdom 全流程 / 渲染 / 契约)
├── scripts/screenshots.mjs # README 截图自动生成
└── docs/DESIGN.md          # 设计稿

存档位置:~/Library/Application Support/com.zhengzhong.oc-english/player.json


💻 安装步骤

1. 环境要求(macOS)

依赖 版本 安装
Xcode Command Line Tools — xcode-select --install
Rust stable curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Node.js ≥ 22 官网下载或 brew install node

2. 获取代码并安装依赖

git clone <仓库地址> OC学英语
cd OC学英语
npm install          # 仅两个开发依赖:@tauri-apps/cli、jsdom(npm 建议配国内镜像)

3. 开发模式运行(日常迭代推荐)

npm run tauri dev

首次会编译 Rust 依赖(几分钟),之后热更新秒级生效。

4. 打包成正式 App

npm run tauri build

产物:

src-tauri/target/release/bundle/macos/带着OC学英语.app   ← 双击即用
src-tauri/target/release/bundle/dmg/带着OC学英语_0.1.0_aarch64.dmg

⚠️ 未做 Apple 签名公证,首次打开若被 Gatekeeper 拦截:右键 → 打开,或执行 xattr -cr 带着OC学英语.app


✅ 测试

npm test
套件 覆盖
test:rust Rust 单测 + 全流程集成(注册→学习→考试→购买)
test:contract 前端 api.js 与 Rust 指令契约对齐
test:render 50 装扮 + 18 家具素材完整性、SVG 合法性(xmllint)
test:ui jsdom 全流程冒烟:注册→捏脸→商店→换装→房间→跟练→考试→登出

README 截图再生成:npm run screenshots(需要本机装有 Google Chrome)。


🗺️ 路线图

oc-english (yczz/oc-english)

Searching Database…

这是什么?这是一款中文虚拟宠物养成游戏:你可以创建并定制 Q 版角色、装扮并布置 2.5D 房间——但赚取购买服装和家具所需积分的唯一途径,是完成真实的英语课程。
这是游戏、学习应用,还是两者都是?它是一款原生桌面游戏:Tauri 2.0 应用,Rust 后端负责存档/商店/考试,Vanilla JS 前端渲染 SVG 角色和 PixiJS 2.5D 房间,英语课程则融入游戏的经济系统之中。
怎么让它跑起来?克隆仓库,安装依赖,然后运行 Tauri 开发命令获得支持热重载的开发版,或执行构建生成打包好的 .app 套装。
构建之前需要 Rust 和 Node.js 吗?需要——必须先安装 Xcode Command Line Tools、稳定的 Rust 工具链和 Node.js 22 或更新版本,才能从源码构建或运行该应用。
macOS 构建开箱就能直接打开吗?还不行——应用未经 Apple 签名或公证,Gatekeeper 可能会阻止首次启动;你需要右键 → 打开,或对 .app 运行 xattr -cr。
它能在 Windows 或 Linux 上运行,还是只有 Mac?目前仅支持 macOS。按照路线图,iOS 版本(借助 Tauri 2 的移动端支持)正在开发中,Android 版本也在计划之中。
它同步哪些英语教材?它对齐 13 本中国人教版(PEP)英语教材——小学三至六年级的 8 本,以及初中七至九年级的 5 本——游戏内的单元与真实教材单元一一对应。
到底怎么赚取积分?积分只能通过学习获得:新手礼包 +200,每答对一张词汇/听力练习卡 +2,首次通过单元测试 +100,刷新个人最佳成绩时每多答对一题 +10。
角色能定制到什么程度?面部定制(肤色、眼睛、瞳色、发型、发色、嘴巴、腮红)完全免费,而带 50 件物品的 9 槽位装扮系统(帽子、眼镜、上衣、下装、鞋子、手持物、背部饰品、耳环)必须用课程赚到的积分解锁。
可以有不止一个 OC 吗?可以,你可以免费创建无限个 OC,每个都有自己的面部、衣柜和房间,并可在角色列表中即时切换。
Creator
yczz
Size
6.5 MB
Stars
681
Updated
CommitSep 05
Age
1mo
Commits · 90 Days