feat(音频): 添加音频资源、音效开关与战斗音效播放逻辑
- 新增Hit、Critical、Attack_01/02、dun等音频资源及元文件 - 新增音效与背景音乐开关配置,包含状态同步与更新方法 - 在英雄受击时根据暴击状态播放对应音效
This commit is contained in:
9
assets/resources/music.meta
Normal file
9
assets/resources/music.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "1.2.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "dedd7eec-c366-427a-a253-1cd907c8dc69",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
BIN
assets/resources/music/Attack_01.wav
Normal file
BIN
assets/resources/music/Attack_01.wav
Normal file
Binary file not shown.
14
assets/resources/music/Attack_01.wav.meta
Normal file
14
assets/resources/music/Attack_01.wav.meta
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"ver": "1.0.0",
|
||||
"importer": "audio-clip",
|
||||
"imported": true,
|
||||
"uuid": "9d34eb17-93b0-4e19-817e-aa289eebf54e",
|
||||
"files": [
|
||||
".json",
|
||||
".wav"
|
||||
],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"downloadMode": 0
|
||||
}
|
||||
}
|
||||
BIN
assets/resources/music/Attack_02.wav
Normal file
BIN
assets/resources/music/Attack_02.wav
Normal file
Binary file not shown.
14
assets/resources/music/Attack_02.wav.meta
Normal file
14
assets/resources/music/Attack_02.wav.meta
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"ver": "1.0.0",
|
||||
"importer": "audio-clip",
|
||||
"imported": true,
|
||||
"uuid": "7788bbf2-19b3-4d2b-9b29-73c1a3611bf2",
|
||||
"files": [
|
||||
".json",
|
||||
".wav"
|
||||
],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"downloadMode": 0
|
||||
}
|
||||
}
|
||||
BIN
assets/resources/music/Critical.wav
Normal file
BIN
assets/resources/music/Critical.wav
Normal file
Binary file not shown.
14
assets/resources/music/Critical.wav.meta
Normal file
14
assets/resources/music/Critical.wav.meta
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"ver": "1.0.0",
|
||||
"importer": "audio-clip",
|
||||
"imported": true,
|
||||
"uuid": "55262788-4684-484b-9273-5af16c12690d",
|
||||
"files": [
|
||||
".json",
|
||||
".wav"
|
||||
],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"downloadMode": 0
|
||||
}
|
||||
}
|
||||
BIN
assets/resources/music/Hit.wav
Normal file
BIN
assets/resources/music/Hit.wav
Normal file
Binary file not shown.
14
assets/resources/music/Hit.wav.meta
Normal file
14
assets/resources/music/Hit.wav.meta
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"ver": "1.0.0",
|
||||
"importer": "audio-clip",
|
||||
"imported": true,
|
||||
"uuid": "eab9c19a-d17b-44c1-8182-666328bfd379",
|
||||
"files": [
|
||||
".json",
|
||||
".wav"
|
||||
],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"downloadMode": 0
|
||||
}
|
||||
}
|
||||
BIN
assets/resources/music/dun.wav
Normal file
BIN
assets/resources/music/dun.wav
Normal file
Binary file not shown.
14
assets/resources/music/dun.wav.meta
Normal file
14
assets/resources/music/dun.wav.meta
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"ver": "1.0.0",
|
||||
"importer": "audio-clip",
|
||||
"imported": true,
|
||||
"uuid": "4ced6d9e-6d28-40ed-a43e-7f1911ad5e22",
|
||||
"files": [
|
||||
".json",
|
||||
".wav"
|
||||
],
|
||||
"subMetas": {},
|
||||
"userData": {
|
||||
"downloadMode": 0
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 在游戏载入早期调用,预加载常用图集
|
||||
*/
|
||||
|
||||
@@ -523,6 +523,13 @@ export class HeroViewComp extends CCComp {
|
||||
|
||||
if (damage <= 0) return;
|
||||
|
||||
// 播放受击音效
|
||||
if (isCrit) {
|
||||
oops.audio.playEffect("music/Critical");
|
||||
} else {
|
||||
oops.audio.playEffect("music/Hit");
|
||||
}
|
||||
|
||||
// 视图层表现
|
||||
let SConf=SkillSet[s_uuid]
|
||||
const hitAnm = SConf?.DAnm|| "atked";
|
||||
|
||||
Reference in New Issue
Block a user