109 lines
4.5 KiB
JavaScript
109 lines
4.5 KiB
JavaScript
/**
|
||
* ============================================================================
|
||
* SoundResources.template.js - 音效资源常量定义规范
|
||
* ============================================================================
|
||
*
|
||
* 使用方式:
|
||
* 将此文件复制到游戏项目中,重命名为 SoundResources.js。
|
||
* 所有文件名必须与实际音效文件完全一致,不可自行编造。
|
||
*
|
||
* ============================================================================
|
||
* 文件命名规范
|
||
* ============================================================================
|
||
*
|
||
* 音效文件名 = 5位数字补零 + .mp3,例如:
|
||
* ID=101 → '00101.mp3'
|
||
* ID=151 → '00151.mp3'
|
||
*
|
||
* ============================================================================
|
||
* ID 分配规范
|
||
* ============================================================================
|
||
*
|
||
* 框架保留:00001–00100(平台系统音效,子游戏严禁占用)
|
||
* 子游戏范围:00101+(EFFECTS / VOICE / MUSIC 的具体分段按项目自行规划)
|
||
*
|
||
* ============================================================================
|
||
* 性别语音规则(AudioManager 依赖此规范)
|
||
* ============================================================================
|
||
*
|
||
* 男性语音 ID = 基础 ID(151+)
|
||
* 女性语音 ID = 男性语音 ID + FEMALE_VOICE_OFFSET(默认 100)
|
||
* 规律:男性 '00151.mp3' 对应 女性 '00251.mp3'
|
||
*
|
||
* AudioManager.playActionVoiceBySeat(seat, action) 会根据该座位的
|
||
* sex 字段(sex===2 为女性)自动选择正确的语音文件,
|
||
* MALE 和 FEMALE 两组键名必须保持一一对应。
|
||
*
|
||
* ============================================================================
|
||
* 调用示例(供理解结构,不代表实际值)
|
||
* ============================================================================
|
||
*
|
||
* AudioManager.playSound(SoundResources.EFFECTS.DISCARD);
|
||
* // 游戏侧 GameAudio 封装 ID 映射,再调用框架层通用 API:
|
||
* AudioManager.playVoiceBySeat(seat, ACTION_VOICE_BASE_ID['chi']); // 自动按性别选语音
|
||
* AudioManager.playVoiceBySeat(seat, CARD_VOICE_BASE_ID[cardValue]); // 自动按性别选报牌语音
|
||
* AudioManager.playMusic();
|
||
*
|
||
* @see AudioManager.js 音频播放管理(gameabc-framework/system/)
|
||
* @see GameAudio.js 游戏专属 ID 映射(子游戏目录,如 game/managers/GameAudio.js)
|
||
*/
|
||
|
||
'use strict';
|
||
|
||
var SoundResources = {
|
||
|
||
// ========================================================================
|
||
// EFFECTS - 通用音效
|
||
// ========================================================================
|
||
EFFECTS: {
|
||
|
||
// 操作动效音 ≠ 操作语音:
|
||
// 操作动效音 = 文字弹出时的短促音效(在 EFFECTS 中定义)
|
||
// 操作语音 = 玩家喊出操作词的人声(在 VOICE 中定义)
|
||
|
||
// DISCARD: '<实际文件名>',
|
||
// DRAW: '<实际文件名>',
|
||
// GAME_START: '<实际文件名>',
|
||
// WIN: '<实际文件名>',
|
||
// CHI_EFFECT: '<实际文件名>',
|
||
// ...
|
||
},
|
||
|
||
// ========================================================================
|
||
// VOICE - 语音(按性别分组)
|
||
// 规则:女性语音文件 ID = 对应男性语音文件 ID + FEMALE_VOICE_OFFSET(默认100)
|
||
// MALE 和 FEMALE 两组键名必须完全一一对应,AudioManager 依赖此结构
|
||
// ========================================================================
|
||
VOICE: {
|
||
|
||
MALE: {
|
||
// 操作语音键名(固定,AudioManager 按此查找):
|
||
// CHI / PONG / KONG / HU / TING / PASS / ZIMO
|
||
// CHI: '<实际文件名>',
|
||
// ...
|
||
|
||
// 报牌语音键名建议统一为 <SUIT>_<VALUE>
|
||
// 示例:WAN_1, WAN_2, ... TIAO_1, ... TONG_1, ... DONG, NAN, XI, BEI, ZHONG, FA, BAI
|
||
// WAN_1: '<实际文件名>',
|
||
// ...
|
||
},
|
||
|
||
FEMALE: {
|
||
// 键名与 MALE 完全相同,对应文件 ID + 100
|
||
// CHI: '<实际文件名>',
|
||
// WAN_1: '<实际文件名>',
|
||
// ...
|
||
}
|
||
},
|
||
|
||
// ========================================================================
|
||
// MUSIC - 背景音乐
|
||
// 需同时在 game_config.soundList 中配置预加载
|
||
// ========================================================================
|
||
MUSIC: {
|
||
// GAME_BGM: '<实际文件名>',
|
||
// ROOM_BGM: '<实际文件名>',
|
||
}
|
||
};
|
||
|