|
|
@@ -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;
|
|
|
}
|
|
|
|