Browse Source

添加游戏音效

丸子 4 tháng trước cách đây
mục cha
commit
033934c201

BIN
src/assets/blockly/complete.MP3


BIN
src/assets/blockly/failure.MP3


BIN
src/assets/blockly/success.MP3


+ 24 - 9
src/components/blockly/MapGame.vue

@@ -143,6 +143,12 @@ import passMp3 from '@/assets/music/blockly/pass.MP3';
 import failureMp3 from '@/assets/music/blockly/failure.MP3';
 import errorMp3 from '@/assets/music/blockly/error.MP3'
 
+import successMP3 from '@/assets/blockly/success.MP3' // 成功音效
+import failure from '@/assets/blockly/failure.MP3'; // 失败音效
+import complete from '@/assets/blockly/complete.MP3'; // 到终点但任务没有做完音效
+
+
+
 // 游戏接口数据
 import { registerCustomBlocks, registerJavaScriptGenerators, registerPythonGenerators, initBlockly } from '@/api/blockly/blockly.js';
 import {playMp3} from "@/api/blockly/music.js";
@@ -1269,19 +1275,28 @@ window.isFinish = async function() {
     ).length;
     //blockly总星星数量
     //无任务情况下直接完成
-    if (totalTasks === 0 || completedTasks === totalTasks) {
-      gameState.player.hasReachedEnd = true;
-      emits('saveProgress', 'blockly', passConfig.value.starTotal * 100)
-      showGameMessage(CONFIG.TIPS.FINISH, 'success' );
-
-      // 展示通过动画
-      await showPass(passConfig.value.starTotal);
-      return;
-    }
+      if (totalTasks === 0 || completedTasks === totalTasks) {
+        gameState.player.hasReachedEnd = true;
+        emits('saveProgress', 'blockly', passConfig.value.starTotal * 100)
+        showGameMessage(CONFIG.TIPS.FINISH, 'success' );
+        // 播放成功音效
+        await playMp3(successMP3);
+        // 展示通过动画
+        await showPass(passConfig.value.starTotal);
+        return;
+      }
     //任务失败
     // 计算完成百分比
     const completionPercentage = totalTasks > 0 ? Math.round(completedTasks / totalTasks * passConfig.value.starTotal) : passConfig.value.starTotal;
     showGameMessage(CONFIG.TIPS.UNFINISHED, 'error');
+    // 根据完成度播放不同音效
+    if (totalTasks > 0 && completedTasks >= totalTasks / 2 && completedTasks < totalTasks) {
+      // 完成一半以上任务播放complete音效
+      await playMp3(complete);
+    } else {
+      // 否则播放失败音效
+      await playMp3(failure);
+    }
     emits('saveProgress', 'blockly', completionPercentage * 100)
 
     // 展示通过动画