From 0adc1fa73aecdfe9b6a93606fb4e4284551f654d Mon Sep 17 00:00:00 2001 From: kron Date: Wed, 16 Jul 2025 17:55:11 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=86=E8=8A=82=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ShootProgress.vue | 9 ++++++--- src/pages/battle-room.vue | 5 ++++- src/pages/first-try.vue | 7 +------ src/pages/melee-match.vue | 7 +++++-- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/components/ShootProgress.vue b/src/components/ShootProgress.vue index 2b600a4..60a4633 100644 --- a/src/components/ShootProgress.vue +++ b/src/components/ShootProgress.vue @@ -17,7 +17,7 @@ const props = defineProps({ }, total: { type: Number, - default: 90, + default: 120, }, seq: { type: Number, @@ -25,7 +25,7 @@ const props = defineProps({ }, currentRound: { type: Number, - default: 90, + default: 0, }, battleId: { type: String, @@ -45,6 +45,7 @@ const currentSound = ref(""); const currentRound = ref(props.currentRound); const currentRoundEnded = ref(!props.battleId); const ended = ref(false); +const halfTime = ref(false); watch( () => props.tips, @@ -133,7 +134,7 @@ async function onReceiveMessage(messages = []) { (!props.battleId && msg.constructor === MESSAGETYPES.ShootSyncMeArrowID) ) { if (props.melee && msg.userId !== user.value.id) return; - if (msg.target) { + if (!halfTime.value && msg.target) { currentSound.value = msg.target.ring ? `${msg.target.ring}环` : "未上靶"; @@ -142,10 +143,12 @@ async function onReceiveMessage(messages = []) { } else if (msg.constructor === MESSAGETYPES.AllReady) { audioManager.play("比赛开始"); } else if (msg.constructor === MESSAGETYPES.MeleeAllReady) { + halfTime.value = false; audioManager.play("比赛开始"); } else if (msg.constructor === MESSAGETYPES.CurrentRoundEnded) { currentRoundEnded.value = true; } else if (msg.constructor === MESSAGETYPES.HalfTimeOver) { + halfTime.value = true; audioManager.play("中场休息"); } else if (msg.constructor === MESSAGETYPES.MatchOver) { audioManager.play("比赛结束"); diff --git a/src/pages/battle-room.vue b/src/pages/battle-room.vue index ac15ffb..307cf35 100644 --- a/src/pages/battle-room.vue +++ b/src/pages/battle-room.vue @@ -138,6 +138,9 @@ onLoad(async (options) => { players.value = [...battleInfo.blueTeam, ...battleInfo.redTeam]; players.value.forEach((p) => { playersScores.value[p.id] = p.arrows; + if (p.id === user.value.id) { + scores.value = p.arrows; + } }); if (battleInfo.startTime) { const remain = Date.now() / 1000 - battleInfo.startTime; @@ -330,8 +333,8 @@ async function onReceiveMessage(messages = []) { seq.value += 1; timerSeq.value = 0; tips.value = "请连续射出6支箭"; - scores.value = []; total.value = 90; + halfTimeTip.value = false; } if (msg.constructor === MESSAGETYPES.ToSomeoneShoot) { if (battleType.value === 1) { diff --git a/src/pages/first-try.vue b/src/pages/first-try.vue index 438e32f..1bd3238 100644 --- a/src/pages/first-try.vue +++ b/src/pages/first-try.vue @@ -222,12 +222,7 @@ const onClose = () => { - + { players.value = [...battleInfo.blueTeam, ...battleInfo.redTeam]; players.value.forEach((p) => { playersScores.value[p.id] = p.arrows; + if (p.id === user.value.id) { + scores.value = p.arrows; + } }); if (battleInfo.startTime) { const remain = Date.now() / 1000 - battleInfo.startTime; @@ -72,7 +75,6 @@ onLoad(async (options) => { uni.$emit("update-ramain", remain); }, 300); } else if (remain > 90 && remain <= 110) { - halfTimeTip.value = true; startCount.value = false; tips.value = "准备下半场"; } else if (remain > 110) { @@ -123,6 +125,7 @@ async function onReceiveMessage(messages = []) { players.value.forEach((p) => { playersScores.value[p.id] = []; }); + uni.$hideHint(); }; } if (msg.id !== battleId.value) return; @@ -132,7 +135,7 @@ async function onReceiveMessage(messages = []) { seq.value += 1; timerSeq.value = 0; tips.value = "请连续射出6支箭"; - scores.value = []; + halfTimeTip.value = false; } if (msg.constructor === MESSAGETYPES.ShootResult) { if (msg.userId === user.value.id) {