feat(音频): 添加音频资源、音效开关与战斗音效播放逻辑
- 新增Hit、Critical、Attack_01/02、dun等音频资源及元文件 - 新增音效与背景音乐开关配置,包含状态同步与更新方法 - 在英雄受击时根据暴击状态播放对应音效
This commit is contained in:
@@ -16,6 +16,8 @@ import { FightSet } from "./config/GameSet";
|
||||
*/
|
||||
export interface GameDate {
|
||||
gold: number,
|
||||
switch_effect?: boolean, // 音效开关
|
||||
switch_music?: boolean, // 音乐开关
|
||||
timestamp?: number, // 用于比对本地与云端数据的最新状态
|
||||
}
|
||||
export interface CloudData {
|
||||
@@ -129,6 +131,8 @@ export class SingletonModuleComp extends ecs.Comp {
|
||||
} as GameScoreStats,
|
||||
|
||||
gold: 0, // 金币数据(MVVM绑定字段)
|
||||
switch_effect: true, // 音效开关(MVVM绑定字段)
|
||||
switch_music: true, // 音乐开关(MVVM绑定字段)
|
||||
};
|
||||
|
||||
|
||||
@@ -219,6 +223,16 @@ export class SingletonModuleComp extends ecs.Comp {
|
||||
if (data.gold !== undefined) {
|
||||
this.vmdata.gold = data.gold;
|
||||
}
|
||||
// 同步音效开关
|
||||
if (data.switch_effect !== undefined) {
|
||||
this.vmdata.switch_effect = data.switch_effect;
|
||||
if (oops.audio) oops.audio.switchEffect = data.switch_effect;
|
||||
}
|
||||
// 同步音乐开关
|
||||
if (data.switch_music !== undefined) {
|
||||
this.vmdata.switch_music = data.switch_music;
|
||||
if (oops.audio) oops.audio.switchMusic = data.switch_music;
|
||||
}
|
||||
}
|
||||
|
||||
// 触发UI更新
|
||||
@@ -231,6 +245,8 @@ export class SingletonModuleComp extends ecs.Comp {
|
||||
getGameDate() {
|
||||
let data: GameDate = {
|
||||
gold: this.vmdata.gold,
|
||||
switch_effect: this.vmdata.switch_effect,
|
||||
switch_music: this.vmdata.switch_music,
|
||||
timestamp: Date.now() // 每次获取当前数据结构时都附带最新的时间戳
|
||||
};
|
||||
return data;
|
||||
@@ -245,6 +261,22 @@ export class SingletonModuleComp extends ecs.Comp {
|
||||
return true
|
||||
}
|
||||
|
||||
updateSwitchEffect(isOpen: boolean, is_sync: boolean = true) {
|
||||
this.vmdata.switch_effect = isOpen;
|
||||
if (oops.audio) oops.audio.switchEffect = isOpen;
|
||||
if (is_sync) {
|
||||
gameDataSync.markDataDirty();
|
||||
}
|
||||
}
|
||||
|
||||
updateSwitchMusic(isOpen: boolean, is_sync: boolean = true) {
|
||||
this.vmdata.switch_music = isOpen;
|
||||
if (oops.audio) oops.audio.switchMusic = isOpen;
|
||||
if (is_sync) {
|
||||
gameDataSync.markDataDirty();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 在游戏载入早期调用,预加载常用图集
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user