refactor: 高内聚低耦合 - 配置集中化与 i18n 统一
结构优化:
- 新增 mobile-game/config.js:集中模块静态配置(资源路径、排行榜端点、
hero meta、子标签页定义),消除散落在各组件的硬编码
- 新增 composables/useLocale.js:共享语言辅助(t/isZh/pick),
消除 6 个组件各自重复定义的 L() helper
- 文案全部迁入 i18n locale(mobileGame 命名空间),消除模板内联 L('中','英')
- 数据文件 versions.js 去除 {zh,en} 对象,文案改由 i18n 键(tracks/versions)取
- 各组件改为读 config + t(),不再直接 useI18n,降低与 i18n 实现的耦合
headless 验证:中文(hero/meta/team/timeline/3D置顶) + 英文切换 + 切回中文 全通过
This commit is contained in:
@@ -1,162 +1,48 @@
|
||||
// 448 各版本数据(来自对构建产物与 index.html 的分析)
|
||||
// 448 版本演进数据(纯结构化数据,文案走 i18n:mobileGame.tracks / mobileGame.versions)
|
||||
//
|
||||
// 项目是多条线并行演进的,且经历了「2D -> 3D 滚球」的形态转变:
|
||||
// - zikai-ui 线(0.0.0 -> 0.0.3):2D 角色控制器,键盘控制生命/能量,最终改 WASD
|
||||
// - main 线(0.0.0 -> 0.0.1):2D 角色控制器,升级 Unity,加屏幕按键
|
||||
// - doby 线(0.0.0):2D 平台跳跃(Hongxiang He)
|
||||
// - roll-a-ball 线(0.0.2):3D 滚球,陀螺仪操控 —— 项目从 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 用于时间线排序(按发布先后)。
|
||||
// track 字段标识所属演进线;form 标识 2D/3D;order 用于线内排序。
|
||||
// name/note/control 等文案通过 i18n 键 tracks[trackId] / versions[versionId] 取。
|
||||
|
||||
export const tracks = [
|
||||
{
|
||||
id: 'roll-a-ball',
|
||||
name: { zh: '3D 滚球(最终形态)', en: '3D Rolling Ball (Final Form)' },
|
||||
form: '3D',
|
||||
featured: true,
|
||||
desc: {
|
||||
zh: '项目从 2D 转向 3D 的最终形态。手机陀螺仪倾斜操控滚球,含雪花砖掉落、黄色砖弹跳等机制。',
|
||||
en: 'The final form as the project shifted from 2D to 3D. Tilt the phone to roll the ball; snowflake bricks fall, yellow bricks bounce.'
|
||||
}
|
||||
featured: true
|
||||
},
|
||||
{
|
||||
id: 'zikai-ui',
|
||||
name: { zh: 'zikai-ui 角色控制器', en: 'zikai-ui Character Controller' },
|
||||
form: '2D',
|
||||
desc: {
|
||||
zh: '迭代次数最多的线。2D 角色带生命/能量属性,操作方式从鼠标、QWER/ASDF 键盘最终改为 WASD。',
|
||||
en: 'The most iterated line. A 2D character with health/power stats; controls evolved from mouse, QWER/ASDF keys, finally to WASD.'
|
||||
}
|
||||
form: '2D'
|
||||
},
|
||||
{
|
||||
id: 'main',
|
||||
name: { zh: 'main 角色控制器', en: 'main Character Controller' },
|
||||
form: '2D',
|
||||
desc: {
|
||||
zh: '2D 角色控制器,从 Unity 2020 升级到 2021,新增屏幕按键与跳跃。',
|
||||
en: '2D character controller; upgraded Unity 2020 -> 2021, added on-screen buttons and jump.'
|
||||
}
|
||||
form: '2D'
|
||||
},
|
||||
{
|
||||
id: 'doby',
|
||||
name: { zh: 'DobyAdventure', en: 'DobyAdventure' },
|
||||
form: '2D',
|
||||
desc: {
|
||||
zh: '2D 横版平台跳跃,吃金币、计分、血量、触屏摇杆。',
|
||||
en: '2D side-scrolling platformer: collect coins, score, health, touch joystick.'
|
||||
}
|
||||
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,
|
||||
control: { zh: '鼠标左键操作、右键追踪', en: 'Left mouse: operate, Right mouse: track' },
|
||||
note: { zh: '早期鼠标控制原型', en: 'Early mouse-controlled prototype' },
|
||||
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',
|
||||
control: { zh: '生命 Q/W/E/R、能量 A/S/D/F', en: 'Health Q/W/E/R, Power A/S/D/F' },
|
||||
note: { zh: '引入生命/能量属性系统', en: 'Introduced health/power stat system' },
|
||||
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',
|
||||
control: { zh: '同 0.0.1', en: 'Same as 0.0.1' },
|
||||
note: { zh: '构建产物重命名整理', en: 'Build artifact renaming' },
|
||||
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',
|
||||
control: { zh: 'WASD 移动、J 跳跃、K 飞行(测试)', en: 'WASD move, J jump, K fly (testing)' },
|
||||
note: { zh: '改为 WASD 操作,本线最新版', en: 'Switched to WASD, latest of this line' },
|
||||
order: 4
|
||||
},
|
||||
{ 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',
|
||||
control: { zh: '角色控制器', en: 'Character controller' },
|
||||
note: { zh: '基线版本', en: 'Baseline' },
|
||||
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',
|
||||
control: { zh: 'WASD 移动、K 跳跃', en: 'WASD move, K jump' },
|
||||
note: { zh: '升级 Unity,新增屏幕按键', en: 'Upgraded Unity, added on-screen buttons' },
|
||||
order: 5
|
||||
},
|
||||
{ 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',
|
||||
control: { zh: 'A/D 移动、跳跃、吃金币', en: 'A/D move, jump, collect coins' },
|
||||
note: { zh: '2D 平台跳跃', en: '2D platformer' },
|
||||
order: 3
|
||||
},
|
||||
{ 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',
|
||||
control: { zh: '手机陀螺仪倾斜移动、上倾/点击跳跃', en: 'Tilt phone to move, tilt up/tap to jump' },
|
||||
note: { zh: '最终版本,项目转向 3D 滚球', en: 'Final version, project shifted to 3D rolling ball' },
|
||||
order: 6
|
||||
}
|
||||
]
|
||||
|
||||
// 截图(复用 448 现有图片)
|
||||
export const screenshots = [
|
||||
{ src: '/448/1.jpg', caption: { zh: '项目截图 1', en: 'Screenshot 1' } },
|
||||
{ src: '/448/2.jpg', caption: { zh: '项目截图 2', en: 'Screenshot 2' } },
|
||||
{ src: '/448/3.jpg', caption: { zh: '项目截图 3', en: 'Screenshot 3' } }
|
||||
{ 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 }
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user