guide层v1: 全局向导交互层落地(状态签名earcon/turn cue/静默看门狗/纠错) + 6游戏接线 + 8句向导语音 + 测试全绿
- engine/guide.js 运行时合成8个签名earcon(方法论L2硬参数),off档零定时器,插播queue不顶对白 - settings: guide三档(full/standard/off默认full) + 语速2.2视障档;audio: isVoicePlaying()/setRateBoostEnabled() 清两个已知问题 - 6游戏按schemes§2接线: storyline看门狗+无效手势纠错、simon免扣重听看门狗、escape turn cue+提前卡关提示、rhythm gd_answer/gd_miss+结算看门狗+快进豁免、space首撞指令提示+结算看门狗、rpg格挡纠错+60s催促+状态签名 - 大厅设置面板+向导文档(14-guide-layer.md)+00-global-ux §6;R5台词表补4条一致性 - 试玩转写含向导事件;6 playtest(guide=off断言零改动)+guide.test(34断言)+资产终检全绿
This commit is contained in:
+14
-12
@@ -1,37 +1,39 @@
|
||||
/**
|
||||
* settings.js — 全局用户设置(纯音频游戏合集共享)。
|
||||
*
|
||||
* 三项设置:
|
||||
* | 键 | 取值 | 默认 | 作用 |
|
||||
* |--------|-----------------------|----------|----------------------------------------|
|
||||
* | voice | 'male' \| 'female' | 'female' | voice 层加载 audio/voice/<gender>/ 下资产 |
|
||||
* | speed | 1.0 \| 1.35 \| 1.7 | 1.0 | voice 层 source.playbackRate(语速) |
|
||||
* | bgm | 1.0 \| 0.3 \| 0 | 1.0 | BGM 层增益;0 = 不加载不播放 BGM |
|
||||
* 四项设置:
|
||||
* | 键 | 取值 | 默认 | 作用 |
|
||||
* |--------|-------------------------------------|----------|----------------------------------------|
|
||||
* | voice | 'male' \| 'female' | 'female' | voice 层加载 audio/voice/<gender>/ 下资产 |
|
||||
* | speed | 1.0 \| 1.35 \| 1.7 \| 2.2 | 1.0 | voice 层 source.playbackRate(语速;2.2 为视障档) |
|
||||
* | bgm | 1.0 \| 0.3 \| 0 | 1.0 | BGM 层增益;0 = 不加载不播放 BGM |
|
||||
* | guide | 'full' \| 'standard' \| 'off' | 'full' | 向导帮助等级(engine/guide.js 实时读取)|
|
||||
*
|
||||
* localStorage 持久化(key: 'soundgame.settings'),同域下大厅与所有游戏
|
||||
* 页面天然共享;跨标签页修改通过 'storage' 事件同步给订阅者。
|
||||
*
|
||||
* 用法:
|
||||
* import { settings } from '../engine/settings.js';
|
||||
* settings.get(); // -> { voice, speed, bgm }(副本)
|
||||
* settings.get(); // -> { voice, speed, bgm, guide }(副本)
|
||||
* settings.set({ speed: 1.35 }); // 部分更新,持久化并通知订阅者
|
||||
* const off = settings.subscribe((s, changed) => { ... }); // off() 退订
|
||||
*
|
||||
* 游戏侧一般**不需要**直接用本模块:audio.js 已自动应用三项设置
|
||||
* (voice 路径/语速/BGM 增益)。需要自定义响应(如改 UI)才 subscribe。
|
||||
* 游戏侧一般**不需要**直接用本模块:audio.js 已自动应用 voice/speed/bgm,
|
||||
* 向导层(engine/guide.js)实时读 guide。需要自定义响应(如改 UI)才 subscribe。
|
||||
*/
|
||||
|
||||
const STORAGE_KEY = 'soundgame.settings';
|
||||
|
||||
/** @typedef {{ voice: 'male'|'female', speed: number, bgm: number }} SoundGameSettings */
|
||||
/** @typedef {{ voice: 'male'|'female', speed: number, bgm: number, guide: 'full'|'standard'|'off' }} SoundGameSettings */
|
||||
|
||||
/** @type {SoundGameSettings} */
|
||||
const DEFAULTS = { voice: 'female', speed: 1.0, bgm: 1.0 };
|
||||
const DEFAULTS = { voice: 'female', speed: 1.0, bgm: 1.0, guide: 'full' };
|
||||
|
||||
const VALID = {
|
||||
voice: ['male', 'female'],
|
||||
speed: [1.0, 1.35, 1.7],
|
||||
speed: [1.0, 1.35, 1.7, 2.2],
|
||||
bgm: [1.0, 0.3, 0],
|
||||
guide: ['full', 'standard', 'off'],
|
||||
};
|
||||
|
||||
/** @type {SoundGameSettings} */
|
||||
|
||||
Reference in New Issue
Block a user