diff --git a/.gitignore b/.gitignore index db5b162..283a5e8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,8 @@ # 依赖 node_modules/ -# 子模块 timeTableFix 的依赖(node_modules 已被上一条覆盖,此条仅作显式说明) +# 子模块的依赖(node_modules 已被上一条覆盖,以下仅作显式说明) third_party/timeTableFix/node_modules/ +third_party/z449/node_modules/ # 构建产物(输出到 /root/html,不入库) dist/ diff --git a/.gitmodules b/.gitmodules index 0a3b0dd..3f0dca5 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "third_party/timeTableFix"] path = third_party/timeTableFix url = https://git.zikai.wang/zikai/timeTableFix.git +[submodule "third_party/z449"] + path = third_party/z449 + url = https://git.zikai.wang/zikai/z449.git diff --git a/README.md b/README.md index 3d97451..b7d8ad6 100644 --- a/README.md +++ b/README.md @@ -12,14 +12,15 @@ Zikai 的作品集主页 -- Vue 3 模块化多项目展示站。浅色极简、 ``` mainPage/ ├── index.html -├── package.json # 含 ical.js(timeTableFix 依赖) +├── package.json # 含 ical.js(timeTableFix 依赖)、vue-i18n(z449 嵌入时共享) ├── vite.config.js # 构建输出到 /root/html(emptyOutDir=false,不清空既有文件) ├── .gitmodules # git submodule:third_party/timeTableFix ├── README.md ├── docs/ # 架构 / 新增页签 / 子模块管理文档 ├── public/favicon.svg ├── third_party/ -│ └── timeTableFix/ # ★ git submodule:ICS 日程整理器,独立仓库 +│ ├── timeTableFix/ # ★ git submodule:ICS 日程整理器,独立仓库 +│ └── z449/ # ★ git submodule:移动游戏项目展示页,独立仓库 └── src/ ├── main.js # 应用入口(挂载 i18n / router / 全局样式) ├── App.vue # 根布局:顶栏 + 标签导航 + + 页脚 @@ -48,6 +49,7 @@ mainPage/ > 共享记事本页签 iframe 嵌入外部服务(`https://f.zikai.wang/wb/share`),URL 在 `src/config/app.config.js` 配置。 > 日程整理页签(timeTableFix)经 git submodule 构建期集成(非 iframe),详见 [`docs/submodule-timeTableFix.md`](./docs/submodule-timeTableFix.md)。 +> 移动游戏项目页签(z449)同样经 git submodule 构建期集成,子模块自带独立 i18n,经 `:locale` prop 同步父项目语言,详见 [`docs/submodule-z449.md`](./docs/submodule-z449.md)。 ## Ubuntu 从 0 安装 @@ -56,11 +58,13 @@ mainPage/ curl -fsSL https://deb.nodesource.com/setup_18.x | sudo bash - sudo apt-get install -y nodejs -# 2. 取代码(含子模块 timeTableFix) +# 2. 取代码(含子模块 timeTableFix / z449) git clone --recursive https://git.zikai.wang/zikai/zMainPage.git mainPage cd mainPage # 若已 clone 但未带子模块:git submodule update --init --recursive npm install +# 子模块 z449 需各自安装依赖(构建期编译其 .vue) +(cd third_party/z449 && npm install) # 3. 构建(产物输出到 /root/html,不清空既有文件) npm run build @@ -96,3 +100,4 @@ npm run preview # 本地预览构建产物 - [架构(模块注册 / PageShell / KeepAlive / 存活校验)](./docs/architecture.md) - [如何新增一个项目页签](./docs/add-module.md) - [子项目 timeTableFix 管理(submodule 升级 / 移除)](./docs/submodule-timeTableFix.md) +- [子项目 z449 管理(submodule + i18n prop 桥接)](./docs/submodule-z449.md) diff --git a/docs/add-module.md b/docs/add-module.md index 43de715..90b6a9b 100644 --- a/docs/add-module.md +++ b/docs/add-module.md @@ -97,7 +97,10 @@ export default { id: 'my-project', tabKey: 'tabs.myProject', order: 4, param: 'i ### 集成独立子项目(git submodule) -参照 `timetable` 模块:建 mainPage 侧包装器组件 import 子项目 `App.vue`,套 `PageShell`,包装器持有 `defineOptions({ name })`。子项目保持纯净。详见 [submodule-timeTableFix.md](./submodule-timeTableFix.md)。 +参照 `timetable` 模块(无 i18n 子项目)或 `mobile-game` 模块(带独立 i18n 的子项目):建 mainPage 侧包装器组件 import 子项目 `App.vue`,包装器持有 `defineOptions({ name })`。子项目保持纯净。 + +- **无 i18n 的子项目**(如 timeTableFix):包装器直接 import App.vue 即可。 +- **带独立 i18n 的子项目**(如 z449):子项目 App.vue 接 `:locale` prop,包装器把 mainPage 当前语言透传(``),子项目 `watch` 同步到自己的 i18n 实例。详见 [submodule-z449.md](./submodule-z449.md)。 ## 元数据字段速查 diff --git a/docs/architecture.md b/docs/architecture.md index 8525bd9..836bb92 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -52,8 +52,15 @@ export default { - `keepInclude` 是模块 id 列表,默认包含所有模块。 - 声明了 `requiresAlive` 的模块,当存活探测为 `down` 时移出名单 -> 组件卸载;恢复 `up` 后重新纳入。 - **匹配约定**:KeepAlive 按组件 `name` 匹配,因此每个模块组件需 `defineOptions({ name: <模块 id> })`。 - - 内置模块(mobile-game/whiteboard/calendar)直接在组件内声明。 - - 子模块集成(timetable)由 mainPage 侧包装器 `Timetable.vue` 持有 name,子项目自身不持 name(保持纯净)。 + - 内置模块(whiteboard/calendar)直接在组件内声明。 + - 子模块集成(timetable/mobile-game)由 mainPage 侧包装器持有 name,子项目自身不持 name(保持纯净)。 + +## 子模块集成(git submodule + 构建期组件) + +部分页签由独立仓库的子项目经 git submodule 集成,mainPage 侧用包装器 import 子项目 `App.vue` 作为路由组件(非 iframe),共享构建与 KeepAlive 缓存: + +- **timeTableFix**(`third_party/timeTableFix`,日程整理页签):无 i18n,子项目硬编码中文。详见 [submodule-timeTableFix.md](./submodule-timeTableFix.md)。 +- **z449**(`third_party/z449`,移动游戏页签):子项目自带独立 `vue-i18n` 实例与 locale 文案。mainPage 包装器把当前语言经 `:locale` prop 透传,子项目 `App.vue` `watch` 该 prop 同步到自己的 i18n 实例,从而跟随父项目语言开关响应式切换(不共享 messages,仅同步 locale 值)。详见 [submodule-z449.md](./submodule-z449.md)。 ## 存活校验(requiresAlive) diff --git a/docs/submodule-z449.md b/docs/submodule-z449.md new file mode 100644 index 0000000..949f9d3 --- /dev/null +++ b/docs/submodule-z449.md @@ -0,0 +1,69 @@ +# 子项目 z449(git submodule + i18n 桥接) + +z449(移动游戏项目展示页)作为 **git submodule** 被 mainPage 引入,位于 `third_party/z449`,独立仓库为 https://git.zikai.wang/zikai/z449.git 。 + +## 集成方式 + +mainPage 侧的 `src/modules/mobile-game/MobileGameWrapper.vue` 包装器 import 子模块的 `src/App.vue` 作为组件,并持有 KeepAlive 匹配名 `defineOptions({ name: 'mobile-game' })`。 + +- 子模块 `App.vue` 是**便携式组件**:嵌入与独立运行两用。它自带独立 `vue-i18n` 实例与自己的 locale 文案(`mobileGame.*`),不共享 mainPage 的 messages。 +- **i18n 桥接**:mainPage 把当前语言经 `:locale` prop 透传给子模块的 `App.vue`;后者 `watch` 该 prop,同步到自己的 i18n 实例 `locale`。这样切换语言时,移动游戏页内容跟随父项目响应式切换,文案来自 z449 自有 locale。 +- 子模块独立运行时不接收 prop,默认中文。 +- 构建期集成(非 iframe),共享 mainPage 的构建与 KeepAlive 缓存。 +- 子模块样式已隔离(scoped),全局重置/令牌仅在独立 app 的 `main.js` 加载,嵌入时不加载,复用宿主 `:root` 令牌级联。 + +## 克隆(含子模块) + +```bash +git clone --recursive https://git.zikai.wang/zikai/zMainPage.git mainPage +``` + +若已 clone 但未带子模块: + +```bash +cd mainPage +git submodule update --init --recursive +``` + +> 构建前需在子模块目录内 `npm install`(mainPage 的 Vite 编译子模块 `.vue`,但子模块依赖如 `vue-i18n` 须各自安装): + +```bash +cd third_party/z449 && npm install +``` + +## 升级子模块到最新版本 + +```bash +cd mainPage +git submodule update --remote third_party/z449 # 拉取最新 +cd third_party/z449 && git checkout master # 固定到目标分支/commit +cd ../.. +git add third_party/z449 # 更新 gitlink 指针 +git commit -m "chore: 升级 z449 子模块" +npm run build # 重新构建 mainPage +git push # 推送 mainPage(gitlink) +``` + +> 推送顺序:先确保子模块的 commit 已推到 z449.git,再推 mainPage 的 gitlink,否则别人 clone mainPage 时拉不到子模块对应 commit。 + +## 移除子模块集成(仅移除 mainPage 页签,不影响 z449 本身) + +```bash +cd mainPage +git submodule deinit -f third_party/z449 +git rm third_party/z449 +git commit -m "chore: 移除 z449 子模块集成" +``` + +同时删 `src/modules/mobile-game/` 文件夹即移除页签。z449 独立仓库不受影响。 + +> z449 仅作为 submodule 被 mainPage 构建期集成,无独立线上入口。独立开发/测试用其自身的 `npm run dev` / `npm run build`。 + +## 与 timeTableFix 子模块的差异 + +| 维度 | timeTableFix | z449 | +|------|--------------|------| +| i18n | 无(硬编码中文) | 自带独立 vue-i18n,中英双语 | +| 语言同步 | 无需 | 经 `:locale` prop 桥接父项目语言 | +| 文案来源 | 组件内硬编码 | z449 自有 locale 文件(单一来源) | +| mainPage 侧文案 | 无 | 仅 `tabs.mobileGame` 页签标题 | diff --git a/src/i18n/locales/en.js b/src/i18n/locales/en.js index ed0b872..89cf1f2 100644 --- a/src/i18n/locales/en.js +++ b/src/i18n/locales/en.js @@ -19,88 +19,7 @@ export default { openExternal: 'Open in new tab', boardId: 'Board ID', switch: 'Switch' - }, - mobileGame: { - hero: { - title: 'Mobile Game Project', - desc: 'A cross-semester Unity mobile-game capstone: 448 built the game (WebGL + Android APK), 449 built the showcase site and player leaderboard. Iterated across versions, from a character controller to a gyroscope-controlled 3D rolling-ball game, with ML-Agents reinforcement-learning experiments.' - }, - meta: { - course: 'Miami University · Capstone 448 / 449', - stack: 'Stack', - stackValue: 'Unity · C# · WebGL · Android · PHP', - period: 'Period', - periodValue: '2022' - }, - overview: { - label: 'Overview', - title: 'From character controller to gyro ball', - p1: 'The project spans courses 448 and 449. 448 built the game with Unity, producing browser-playable WebGL builds and installable Android APKs; 449 built the showcase site and a PHP+MySQL player leaderboard. The game evolved along several parallel lines, from 2D character controllers and platformers, ultimately shifting to a gyroscope-controlled 3D rolling ball, with ML-Agents reinforcement-learning experiments.', - p2: 'Gameplay iterated across versions: early builds were keyboard-controlled 2D character controllers with health/power stats; the final version became a gyroscope-tilt 3D rolling-ball game with falling snowflake bricks and bouncing yellow bricks.' - }, - subtabs: { - team: 'Team · Leaderboard', - iterations: 'Iterations', - experiment: 'Experiment' - }, - team: { - label: 'Team', - title: 'Members' - }, - leaderboard: { - label: 'Leaderboard', - title: 'Top 30 Scores', - colRank: '#', - colName: 'Name', - colScore: 'Score', - noScores: 'No scores yet', - error: 'Leaderboard service unavailable' - }, - iterations: { - label: 'Version History', - title: 'Iteration Record', - colControls: 'Controls', - colNote: 'Note', - colUnity: 'Unity', - playWebgl: 'Play WebGL', - downloadApk: 'Download APK', - pivotText: 'Earlier parallel lines: 2D' - }, - experiment: { - label: 'Experiment', - title: 'ML-Agents Reinforcement Learning Demo', - caption: 'Capsules trained via ML-Agents to keep the ball from falling and to navigate obstacles.' - }, - tracks: { - 'roll-a-ball': { - name: '3D Rolling Ball (Final Form)', - desc: 'The final form as the project shifted from 2D to 3D. Tilt the phone to roll the ball; snowflake bricks fall, yellow bricks bounce.' - }, - 'zikai-ui': { - name: 'zikai-ui Character Controller', - desc: 'The most iterated line. A 2D character with health/power stats; controls evolved from mouse, QWER/ASDF keys, finally to WASD.' - }, - 'main': { - name: 'main Character Controller', - desc: '2D character controller; upgraded Unity 2020 -> 2021, added on-screen buttons and jump.' - }, - 'doby': { - name: 'DobyAdventure', - desc: '2D side-scrolling platformer: collect coins, score, health, touch joystick.' - } - }, - versions: { - 'zikai-0.0.0': { control: 'Left mouse: operate, Right mouse: track', note: 'Early mouse-controlled prototype' }, - 'zikai-0.0.1': { control: 'Health Q/W/E/R, Power A/S/D/F', note: 'Introduced health/power stat system' }, - 'zikai-0.0.2': { control: 'Same as 0.0.1', note: 'Build artifact renaming' }, - 'zikai-0.0.3': { control: 'WASD move, J jump, K fly (testing)', note: 'Switched to WASD, latest of this line' }, - 'main-0.0.0': { control: 'Character controller', note: 'Baseline' }, - 'main-0.0.1': { control: 'WASD move, K jump', note: 'Upgraded Unity, added on-screen buttons' }, - 'hongXiang-0.0.0': { control: 'A/D move, jump, collect coins', note: '2D platformer' }, - 'ball': { control: 'Tilt phone to move, tilt up/tap to jump', note: 'Final version, project shifted to 3D rolling ball' } - }, - screenshots: { - caption: 'Screenshot {n}' - } } + // Mobile-game copy is provided by the z449 submodule's own i18n; + // mainPage keeps only tabs.mobileGame. Locale syncs to z449 via :locale prop. } diff --git a/src/i18n/locales/zh-CN.js b/src/i18n/locales/zh-CN.js index aeb24ea..2fcae5b 100644 --- a/src/i18n/locales/zh-CN.js +++ b/src/i18n/locales/zh-CN.js @@ -18,90 +18,7 @@ export default { openExternal: '在新标签页打开', boardId: '白板 ID', switch: '切换' - }, - mobileGame: { - hero: { - title: '移动游戏项目', - desc: '一个跨学期的 Unity 移动游戏毕设项目:448 开发游戏本体(WebGL + Android APK),449 搭建展示网站与玩家排行榜。经历多版本迭代,从角色控制器演进到陀螺仪操控的 3D 滚球游戏,并尝试用 ML-Agents 做强化学习实验。' - }, - meta: { - course: '迈阿密大学 · 毕设 448 / 449', - stack: '技术栈', - stackValue: 'Unity · C# · WebGL · Android · PHP', - period: '时间', - periodValue: '2022' - }, - overview: { - label: '项目概览', - title: '从角色控制器到陀螺仪滚球', - p1: '项目跨越 448 与 449 两门课程。448 用 Unity 开发游戏本体,产出可浏览器试玩的 WebGL 构建与可安装的 Android APK;449 搭建展示网站与基于 PHP+MySQL 的玩家分数排行榜。游戏经历多条并行演进线,从 2D 角色控制器与平台跳跃,最终转向手机陀螺仪操控的 3D 滚球,并尝试用 ML-Agents 做强化学习实验。', - p2: '玩法经过多版本迭代:早期是键盘控制生命/能量的 2D 角色控制器,最终版改为手机陀螺仪倾斜操控的 3D 滚球,含雪花砖掉落、黄色砖弹跳等机制。' - }, - subtabs: { - team: '团队 · 排行榜', - iterations: '迭代记录', - experiment: '实验' - }, - team: { - label: '团队', - title: '成员' - }, - leaderboard: { - label: '排行榜', - title: '玩家分数 Top 30', - colRank: '#', - colName: '玩家', - colScore: '分数', - noScores: '暂无分数记录', - error: '排行榜服务暂不可用' - }, - iterations: { - label: '版本演进', - title: '迭代记录', - colControls: '操作', - colNote: '说明', - colUnity: 'Unity', - playWebgl: 'WebGL 试玩', - downloadApk: '下载 APK', - pivotText: '早期并行演进:2D 线' - }, - experiment: { - label: '实验', - title: 'ML-Agents 强化学习演示', - caption: '胶囊体经 ML-Agents 训练,学习保球不掉与越障。' - }, - // 版本演进线与版本数据中的可翻译文案 - tracks: { - 'roll-a-ball': { - name: '3D 滚球(最终形态)', - desc: '项目从 2D 转向 3D 的最终形态。手机陀螺仪倾斜操控滚球,含雪花砖掉落、黄色砖弹跳等机制。' - }, - 'zikai-ui': { - name: 'zikai-ui 角色控制器', - desc: '迭代次数最多的线。2D 角色带生命/能量属性,操作方式从鼠标、QWER/ASDF 键盘最终改为 WASD。' - }, - 'main': { - name: 'main 角色控制器', - desc: '2D 角色控制器,从 Unity 2020 升级到 2021,新增屏幕按键与跳跃。' - }, - 'doby': { - name: 'DobyAdventure', - desc: '2D 横版平台跳跃,吃金币、计分、血量、触屏摇杆。' - } - }, - // 各版本的操作与说明文案(key = 版本 id) - versions: { - 'zikai-0.0.0': { control: '鼠标左键操作、右键追踪', note: '早期鼠标控制原型' }, - 'zikai-0.0.1': { control: '生命 Q/W/E/R、能量 A/S/D/F', note: '引入生命/能量属性系统' }, - 'zikai-0.0.2': { control: '同 0.0.1', note: '构建产物重命名整理' }, - 'zikai-0.0.3': { control: 'WASD 移动、J 跳跃、K 飞行(测试)', note: '改为 WASD 操作,本线最新版' }, - 'main-0.0.0': { control: '角色控制器', note: '基线版本' }, - 'main-0.0.1': { control: 'WASD 移动、K 跳跃', note: '升级 Unity,新增屏幕按键' }, - 'hongXiang-0.0.0': { control: 'A/D 移动、跳跃、吃金币', note: '2D 平台跳跃' }, - 'ball': { control: '手机陀螺仪倾斜移动、上倾/点击跳跃', note: '最终版本,项目转向 3D 滚球' } - }, - screenshots: { - caption: '项目截图 {n}' - } } + // 注:移动游戏项目(mobile-game)的文案由子模块 z449 自有 i18n 提供, + // mainPage 仅保留 tabs.mobileGame 页签标题。切换语言时经 :locale prop 同步给 z449。 } diff --git a/src/modules/mobile-game/MobileGame.vue b/src/modules/mobile-game/MobileGame.vue deleted file mode 100644 index 14bb520..0000000 --- a/src/modules/mobile-game/MobileGame.vue +++ /dev/null @@ -1,106 +0,0 @@ - - - - - diff --git a/src/modules/mobile-game/MobileGameWrapper.vue b/src/modules/mobile-game/MobileGameWrapper.vue new file mode 100644 index 0000000..8e8e60c --- /dev/null +++ b/src/modules/mobile-game/MobileGameWrapper.vue @@ -0,0 +1,20 @@ + + + diff --git a/src/modules/mobile-game/components/ExperimentTab.vue b/src/modules/mobile-game/components/ExperimentTab.vue deleted file mode 100644 index 43958d4..0000000 --- a/src/modules/mobile-game/components/ExperimentTab.vue +++ /dev/null @@ -1,43 +0,0 @@ - - - - - diff --git a/src/modules/mobile-game/components/HeroSection.vue b/src/modules/mobile-game/components/HeroSection.vue deleted file mode 100644 index 646618d..0000000 --- a/src/modules/mobile-game/components/HeroSection.vue +++ /dev/null @@ -1,64 +0,0 @@ - - - - - diff --git a/src/modules/mobile-game/components/IterationsTab.vue b/src/modules/mobile-game/components/IterationsTab.vue deleted file mode 100644 index d7f13d4..0000000 --- a/src/modules/mobile-game/components/IterationsTab.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - diff --git a/src/modules/mobile-game/components/Leaderboard.vue b/src/modules/mobile-game/components/Leaderboard.vue deleted file mode 100644 index 309a9e8..0000000 --- a/src/modules/mobile-game/components/Leaderboard.vue +++ /dev/null @@ -1,128 +0,0 @@ - - - - - diff --git a/src/modules/mobile-game/components/ScreenshotCarousel.vue b/src/modules/mobile-game/components/ScreenshotCarousel.vue deleted file mode 100644 index b23ae05..0000000 --- a/src/modules/mobile-game/components/ScreenshotCarousel.vue +++ /dev/null @@ -1,131 +0,0 @@ - - - - - diff --git a/src/modules/mobile-game/components/SubTabs.vue b/src/modules/mobile-game/components/SubTabs.vue deleted file mode 100644 index eeaee50..0000000 --- a/src/modules/mobile-game/components/SubTabs.vue +++ /dev/null @@ -1,65 +0,0 @@ - - - - - diff --git a/src/modules/mobile-game/components/TeamCard.vue b/src/modules/mobile-game/components/TeamCard.vue deleted file mode 100644 index c64d22a..0000000 --- a/src/modules/mobile-game/components/TeamCard.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - - - diff --git a/src/modules/mobile-game/components/TeamLeaderboardTab.vue b/src/modules/mobile-game/components/TeamLeaderboardTab.vue deleted file mode 100644 index 2f0deb6..0000000 --- a/src/modules/mobile-game/components/TeamLeaderboardTab.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - - - diff --git a/src/modules/mobile-game/components/VersionTimeline.vue b/src/modules/mobile-game/components/VersionTimeline.vue deleted file mode 100644 index a570142..0000000 --- a/src/modules/mobile-game/components/VersionTimeline.vue +++ /dev/null @@ -1,266 +0,0 @@ - - - - - diff --git a/src/modules/mobile-game/config.js b/src/modules/mobile-game/config.js deleted file mode 100644 index 60f21d6..0000000 --- a/src/modules/mobile-game/config.js +++ /dev/null @@ -1,46 +0,0 @@ -// mobile-game 模块的静态配置(集中管理,避免散落在各组件) -// 文案走 i18n(见 locales 的 mobileGame 命名空间),此处只放纯配置与资源路径。 - -// 站点根绝对路径的资源引用 -export const assets = { - // 截图轮播图源 - screenshots: [ - '/448/1.jpg', - '/448/2.jpg', - '/448/3.jpg' - ], - // ML-Agents 演示视频 - video: { - src: '/448/ml/449ml.mp4', - poster: '/448/2.jpg' - } -} - -// 排行榜后端(复用 449 现有 PHP 接口) -export const leaderboard = { - endpoint: '/449/449rest.php', - // 拉取页数 x 每页条数 = 总条数 - pages: 3, - perPage: 10 -} - -// Hero 区元数据(i18n 键,文案在 locales/mobileGame.meta 下) -export const heroMeta = { - // meta 项顺序:labelKey -> valueKey - items: [ - { labelKey: 'mobileGame.meta.stack', valueKey: 'mobileGame.meta.stackValue' }, - { labelKey: 'mobileGame.meta.period', valueKey: 'mobileGame.meta.periodValue' } - ], - // 顶部 eyebrow tag - courseKey: 'mobileGame.meta.course' -} - -// 子标签页定义(id 与 i18n 键) -export const subTabs = [ - { id: 'team', labelKey: 'mobileGame.subtabs.team' }, - { id: 'iterations', labelKey: 'mobileGame.subtabs.iterations' }, - { id: 'experiment', labelKey: 'mobileGame.subtabs.experiment' } -] - -// 默认激活的子标签页 -export const defaultSubTab = 'team' diff --git a/src/modules/mobile-game/data/team.js b/src/modules/mobile-game/data/team.js deleted file mode 100644 index dcf83db..0000000 --- a/src/modules/mobile-game/data/team.js +++ /dev/null @@ -1,8 +0,0 @@ -// 团队成员(来自 449 展示页) -export const team = [ - { name: 'Zikai Wang' }, - { name: 'Hongxiang He' }, - { name: 'Zhuoyue Sun' }, - { name: 'Xingchen Zhou' }, - { name: 'Yidong Yao' } -] diff --git a/src/modules/mobile-game/data/versions.js b/src/modules/mobile-game/data/versions.js deleted file mode 100644 index a9b5cc5..0000000 --- a/src/modules/mobile-game/data/versions.js +++ /dev/null @@ -1,48 +0,0 @@ -// 448 版本演进数据(纯结构化数据,文案走 i18n:mobileGame.tracks / mobileGame.versions) -// -// 项目是多条线并行演进的,且经历了「2D -> 3D 滚球」的形态转变: -// - roll-a-ball(3D,featured):项目转向 3D 的最终形态,置顶强调 -// - zikai-ui(2D):角色控制器,0.0.0 -> 0.0.3 -// - main(2D):角色控制器,0.0.0 -> 0.0.1 -// - doby(2D):2D 平台跳跃 -// -// track 字段标识所属演进线;form 标识 2D/3D;order 用于线内排序。 -// name/note/control 等文案通过 i18n 键 tracks[trackId] / versions[versionId] 取。 - -export const tracks = [ - { - id: 'roll-a-ball', - form: '3D', - featured: true - }, - { - id: 'zikai-ui', - form: '2D' - }, - { - id: 'main', - form: '2D' - }, - { - id: 'doby', - form: '2D' - } -] - -export const versions = [ - // zikai-ui 线 - { id: 'zikai-0.0.0', track: 'zikai-ui', version: '0.0.0', unity: '-', product: 'My project / 1.0.2', webgl: '/448/zikai-0.0.0/', apk: null, order: 1 }, - { id: 'zikai-0.0.1', track: 'zikai-ui', version: '0.0.1', unity: '2020.3.30f1', product: 'zikai-ui / 1.0.2', webgl: '/448/zikai-0.0.1/', apk: '/448/zikai-0.0.1/zikai.apk', order: 2 }, - { id: 'zikai-0.0.2', track: 'zikai-ui', version: '0.0.2', unity: '2020.3.30f1', product: 'zikai-ui / 1.0.2', webgl: '/448/zikai-0.0.2/', apk: '/448/zikai-0.0.2/zikai.apk', order: 3 }, - { id: 'zikai-0.0.3', track: 'zikai-ui', version: '0.0.3', unity: '2020.3.30f1', product: 'zikai-ui / 1.0.2.5', webgl: '/448/zikai-0.0.3/', apk: '/448/zikai-0.0.3/zikai.apk', order: 4 }, - - // main 线 - { id: 'main-0.0.0', track: 'main', version: '0.0.0', unity: '2020.3.30f1', product: 'zikai-main / 1.0.2.6', webgl: '/448/main-0.0.0/', apk: '/448/main-0.0.0.apk', order: 2 }, - { id: 'main-0.0.1', track: 'main', version: '0.0.1', unity: '2021.3.12f1', product: 'beta / 1.0.2', webgl: '/448/main-0.0.1/', apk: '/448/main-0.0.1/zikai.apk', order: 5 }, - - // doby 线 - { id: 'hongXiang-0.0.0', track: 'doby', version: '0.0.0', unity: '2021.2.10f1', product: 'DobyAdventure', webgl: null, apk: '/448/hongXiang-0.0.0/2D game.apk', order: 3 }, - - // roll-a-ball 线(3D,项目形态转变) - { id: 'ball', track: 'roll-a-ball', version: '0.0.2', unity: '2021.3.12f1', product: '3dRoingBallt2 / 0.0.2', webgl: '/448/ball/', apk: '/448/203wangz199.apk', order: 6 } -] diff --git a/src/modules/mobile-game/index.js b/src/modules/mobile-game/index.js index 346863b..6331430 100644 --- a/src/modules/mobile-game/index.js +++ b/src/modules/mobile-game/index.js @@ -3,6 +3,6 @@ export default { id: 'mobile-game', tabKey: 'tabs.mobileGame', order: 1, - // 懒加载组件 -> 独立 chunk - component: () => import('./MobileGame.vue') + // 懒加载组件 -> 独立 chunk(包装器 import 子模块 z449 的 App.vue) + component: () => import('./MobileGameWrapper.vue') } diff --git a/third_party/z449 b/third_party/z449 new file mode 160000 index 0000000..a5d4c05 --- /dev/null +++ b/third_party/z449 @@ -0,0 +1 @@ +Subproject commit a5d4c05392482235496d0f45b80226e7b025df4f