import { AudioClip } from "cc"; import { tgxAudioMgr } from "../../core_tgx/tgx"; import { ModuleDef } from "../../scripts/ModuleDef"; const BundleName = ModuleDef.Arean; export class AreanGameAudioMgr { /** * @en * play short audio, such as strikes,explosions * @zh * 播放短音频,比如 打击音效,爆炸音效等 * @param sound clip or url for the audio * @param volume */ public static playOneShot(sound: AudioClip | string, volume: number = 1.0) { // console.log(sound); tgxAudioMgr.inst.playOneShot(sound, volume, BundleName); } /** * @en * play long audio, such as the bg music * @zh * 播放长音频,比如 背景音乐 * @param sound clip or url for the sound * @param volume */ public static play(sound: AudioClip | string, volume: number = 1.0,) { tgxAudioMgr.inst.play(sound, volume, BundleName); } /** * stop the audio play */ public static stop() { tgxAudioMgr.inst.stop(); } /** * pause the audio play */ public static pause() { tgxAudioMgr.inst.pause(); } /** * resume the audio play */ public static resume() { tgxAudioMgr.inst.resume(); } public static getVolumeByDist(soundPos: { x: number, y: number, z: number }, earPos: { x: number, y: number, z: number }, maxDist: number = 50.0) { let dx = soundPos.x - earPos.x; let dy = soundPos.y - earPos.y; let dz = 0; let dist = Math.sqrt(dx * dx + dy * dy + dz * dz); if (dist < 1.0) { return 1.0; } let factor = 1.0 / (dist / maxDist); if (factor > 1.0) { factor = 1.0; } return factor } } export enum AreanAudioName { 弓箭 = 'res/Audio/arrow', 背景音乐1 = 'res/Audio/bgm1', 爆炸 = 'res/Audio/boom', 弩 = 'res/Audio/crossbow', 电光 = 'res/Audio/electric', 马 = 'res/Audio/horse', 金属1 = 'res/Audio/metal1', 金属2 = 'res/Audio/metal2', 陨石 = 'res/Audio/meteorite', 号角 = 'res/Audio/trumpet', 关闭窗口 = 'res/Audio/closeWin', 打开窗口 = 'res/Audio/openWin', 点击 = 'res/Audio/camera', 警告 = 'res/Audio/warning', 奖励 = 'res/Audio/bub', 升级 = 'res/Audio/levelup', 拖拽放手 = 'res/Audio/dragIn', 死亡 = 'res/Audio/die', 技能释放 = 'res/Audio/bub', }