Files
youle_framework/client/js/gameabc-framework/templates/SoundResources.template.js
T

109 lines
4.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* ============================================================================
* 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: '<实际文件名>',
}
};