liyanbo il y a 4 mois
Parent
commit
73f9c26dbc

+ 0 - 0
src/assets/blockly/failure.MP3 → src/assets/music/blockly/pass_failure.MP3


+ 0 - 0
src/assets/blockly/success.MP3 → src/assets/music/blockly/pass_fireworks.MP3


+ 0 - 0
src/assets/blockly/complete.MP3 → src/assets/music/blockly/pass_trumpet.MP3


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

@@ -143,12 +143,6 @@ 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";
@@ -162,6 +156,9 @@ import coppercup from '@/assets/blockly/coppercup.png' // 铜杯
 import nocup from '@/assets/blockly/nocup.png' // 无杯状态
 import star02 from '@/assets/blockly/star02.png' // 星星
 import star01 from '@/assets/blockly/star01.png' // 金星
+import passFailure from '@/assets/music/blockly/pass_failure.MP3' // 通关失败音效
+import passFireworks from '@/assets/music/blockly/pass_fireworks.MP3' // 通关小号音效
+import passTrump from '@/assets/music/blockly/pass_trumpet.MP3' // 通关庆祝礼炮奖杯
 
 // 星星数量,可根据需要调整
 const passConfig = ref({
@@ -298,6 +295,7 @@ const CONFIG = {
   TIPS: {
     NO_ENTRY: '当前位置无通路,无法移动',
     UNFINISHED: '任务未完成!',
+    EFFORT: '再接再厉!',
     FINISH: '恭喜你到达终点!',
     PICKUP_ITEM: '拾取物品成功!',
     NULL_PICKUP_ITEM: '当前位置没有可拾取的物品',
@@ -1275,27 +1273,21 @@ 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 playMp3(successMP3);
-        // 展示通过动画
-        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 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);
+    if (completionPercentage > 0){
+      showGameMessage(CONFIG.TIPS.EFFORT, 'warning');
+    }else{
+      showGameMessage(CONFIG.TIPS.UNFINISHED, 'error');
     }
     emits('saveProgress', 'blockly', completionPercentage * 100)
 
@@ -1783,15 +1775,19 @@ async function showPass(passStar){
       passConfig.value.title = 'YOU LOSE!';
       passConfig.value.passTrophy = nocup;
       passConfig.value.passBackground = nocupbg;
+      await playMp3(passFailure);
       break;
     case 1:
       passConfig.value.passTrophy = coppercup;
+      await playMp3(passTrump);
       break;
     case 2:
       passConfig.value.passTrophy = silvercup;
+      await playMp3(passTrump);
       break;
     case 3:
       passConfig.value.passTrophy = goldcup;
+      await playMp3(passFireworks);
       break;
   }