|
|
@@ -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)
|
|
|
|
|
|
// 展示通过动画
|