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 {
|
export interface GameDate {
|
||||||
gold: number,
|
gold: number,
|
||||||
|
switch_effect?: boolean, // 音效开关
|
||||||
|
switch_music?: boolean, // 音乐开关
|
||||||
timestamp?: number, // 用于比对本地与云端数据的最新状态
|
timestamp?: number, // 用于比对本地与云端数据的最新状态
|
||||||
}
|
}
|
||||||
export interface CloudData {
|
export interface CloudData {
|
||||||
@@ -129,6 +131,8 @@ export class SingletonModuleComp extends ecs.Comp {
|
|||||||
} as GameScoreStats,
|
} as GameScoreStats,
|
||||||
|
|
||||||
gold: 0, // 金币数据(MVVM绑定字段)
|
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) {
|
if (data.gold !== undefined) {
|
||||||
this.vmdata.gold = data.gold;
|
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更新
|
// 触发UI更新
|
||||||
@@ -231,6 +245,8 @@ export class SingletonModuleComp extends ecs.Comp {
|
|||||||
getGameDate() {
|
getGameDate() {
|
||||||
let data: GameDate = {
|
let data: GameDate = {
|
||||||
gold: this.vmdata.gold,
|
gold: this.vmdata.gold,
|
||||||
|
switch_effect: this.vmdata.switch_effect,
|
||||||
|
switch_music: this.vmdata.switch_music,
|
||||||
timestamp: Date.now() // 每次获取当前数据结构时都附带最新的时间戳
|
timestamp: Date.now() // 每次获取当前数据结构时都附带最新的时间戳
|
||||||
};
|
};
|
||||||
return data;
|
return data;
|
||||||
@@ -245,6 +261,22 @@ export class SingletonModuleComp extends ecs.Comp {
|
|||||||
return true
|
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 (damage <= 0) return;
|
||||||
|
|
||||||
|
// 播放受击音效
|
||||||
|
if (isCrit) {
|
||||||
|
oops.audio.playEffect("music/Critical");
|
||||||
|
} else {
|
||||||
|
oops.audio.playEffect("music/Hit");
|
||||||
|
}
|
||||||
|
|
||||||
// 视图层表现
|
// 视图层表现
|
||||||
let SConf=SkillSet[s_uuid]
|
let SConf=SkillSet[s_uuid]
|
||||||
const hitAnm = SConf?.DAnm|| "atked";
|
const hitAnm = SConf?.DAnm|| "atked";
|
||||||
|
|||||||
Reference in New Issue
Block a user