From e0807eb06ab8eaa24b5ad7c243e39c3e1d2dcf50 Mon Sep 17 00:00:00 2001 From: kron Date: Fri, 11 Jul 2025 22:21:34 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=86=E8=8A=82=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/BattleFooter.vue | 16 +++++++----- src/components/BowData.vue | 2 +- src/components/BowTarget.vue | 46 +++++++++++++++++++++++++-------- src/components/Header.vue | 2 +- src/components/PlayerSeats.vue | 2 +- src/components/PlayersRow.vue | 5 ++-- src/components/TestDistance.vue | 1 - src/pages/battle-room.vue | 27 +++++++++++++------ src/pages/first-try.vue | 4 ++- src/pages/my-device.vue | 4 +-- src/pages/my-growth.vue | 2 +- src/pages/practise-one.vue | 13 +++++----- src/pages/practise-two.vue | 14 ++++------ src/pages/team-match.vue | 17 +++++++----- 14 files changed, 98 insertions(+), 57 deletions(-) diff --git a/src/components/BattleFooter.vue b/src/components/BattleFooter.vue index 7927b69..a3d1d9a 100644 --- a/src/components/BattleFooter.vue +++ b/src/components/BattleFooter.vue @@ -28,9 +28,11 @@ defineProps({ Round {{ index + 1 }} {{ - result.blueArrows - .map((item) => item.ring) - .reduce((last, next) => last + next, 0) + result.blueArrows.length + ? result.blueArrows + .map((item) => item.ring) + .reduce((last, next) => last + next, 0) + : "" }} @@ -41,9 +43,11 @@ defineProps({ Round {{ index + 1 }} {{ - result.redArrows - .map((item) => item.ring) - .reduce((last, next) => last + next, 0) + result.redArrows.length + ? result.redArrows + .map((item) => item.ring) + .reduce((last, next) => last + next, 0) + : "" }} diff --git a/src/components/BowData.vue b/src/components/BowData.vue index 9cbe30b..bd9d1e2 100644 --- a/src/components/BowData.vue +++ b/src/components/BowData.vue @@ -29,7 +29,7 @@ const props = defineProps({ - + {{ user.nickName }} {{ user.lvlName }} diff --git a/src/components/BowTarget.vue b/src/components/BowTarget.vue index 434aee1..3d009cf 100644 --- a/src/components/BowTarget.vue +++ b/src/components/BowTarget.vue @@ -131,8 +131,14 @@ const simulShoot2 = async () => { v-if="scores.length && showRoundTips && showLatestArrow && showE" class="e-value fade-in-out" :style="{ - left: calcRealX(scores[scores.length - 1].x, 66), - top: calcRealY(scores[scores.length - 1].y, 150), + left: calcRealX( + scores[scores.length - 1].ring ? scores[scores.length - 1].x : 0, + 66 + ), + top: calcRealY( + scores[scores.length - 1].ring ? scores[scores.length - 1].y : 0, + 150 + ), }" > 经验 +1 @@ -141,19 +147,37 @@ const simulShoot2 = async () => { v-if="scores.length && showRoundTips && showLatestArrow" class="round-tip fade-in-out" :style="{ - left: calcRealX(scores[scores.length - 1].x, 70), - top: calcRealY(scores[scores.length - 1].y, 100), + left: calcRealX( + scores[scores.length - 1].ring ? scores[scores.length - 1].x : 0, + 100 + ), + top: calcRealY( + scores[scores.length - 1].ring ? scores[scores.length - 1].y : 0, + 100 + ), }" - >{{ scores[scores.length - 1].ring }}{{ scores[scores.length - 1].ring || "未上靶" + }} {{ blueScores[blueScores.length - 1].ring }}{{ blueScores[blueScores.length - 1].ring || "未上靶" + }} { - {{ + @@ -240,7 +264,7 @@ const simulShoot2 = async () => { font-size: 30px; font-weight: bold; z-index: 2; - width: 70px; + width: 100px; text-align: center; } .round-tip > text { diff --git a/src/components/Header.vue b/src/components/Header.vue index 9f25ce9..4e8c68b 100644 --- a/src/components/Header.vue +++ b/src/components/Header.vue @@ -72,6 +72,7 @@ onMounted(() => { padding-left: 15px; color: #fff; font-size: 16px; + font-weight: bold; } .back-btn { display: flex; @@ -98,6 +99,5 @@ onMounted(() => { .current-step { font-size: 16px; color: #fff; - font-weight: bold; } diff --git a/src/components/PlayerSeats.vue b/src/components/PlayerSeats.vue index e662a5d..f9e0ec9 100644 --- a/src/components/PlayerSeats.vue +++ b/src/components/PlayerSeats.vue @@ -18,7 +18,7 @@ const seats = new Array(props.total).fill(1); diff --git a/src/components/PlayersRow.vue b/src/components/PlayersRow.vue index 29012e7..3afa0bc 100644 --- a/src/components/PlayersRow.vue +++ b/src/components/PlayersRow.vue @@ -37,7 +37,7 @@ defineProps({ > 请预先射几箭测试 请确保射击距离有5米 - diff --git a/src/pages/battle-room.vue b/src/pages/battle-room.vue index 908fbab..1007a3d 100644 --- a/src/pages/battle-room.vue +++ b/src/pages/battle-room.vue @@ -225,6 +225,10 @@ async function onReceiveMessage(messages = []) { tips.value = "请在90秒内射完12支箭"; seq.value += 1; } + roundResults.value.push({ + redArrows: [], + blueArrows: [], + }); } if (msg.constructor === MESSAGETYPES.MeleeAllReady) { start.value = true; @@ -273,11 +277,6 @@ async function onReceiveMessage(messages = []) { msg.target ); } - } else { - roundResults.value.push({ - redArrows: isRed ? [msg.target] : [], - blueArrows: isRed ? [] : [msg.target], - }); } } if (room.value.battleType === 2) { @@ -299,7 +298,13 @@ async function onReceiveMessage(messages = []) { redPoints.value += result.redScore; // roundResults.value = result.roundResults; currentRound.value = result.currentRound + 1; - if (result.currentRound < 5) showRoundTip.value = true; + if (result.currentRound < 5) { + roundResults.value.push({ + redArrows: [], + blueArrows: [], + }); + showRoundTip.value = true; + } } } if (msg.constructor === MESSAGETYPES.FinalShoot) { @@ -378,13 +383,19 @@ onUnmounted(() => { - + {{ owner.name }} - + {{ opponent.name }} diff --git a/src/pages/first-try.vue b/src/pages/first-try.vue index 7651a1d..77ab83b 100644 --- a/src/pages/first-try.vue +++ b/src/pages/first-try.vue @@ -45,7 +45,9 @@ const createPractise = async (arrows) => { async function onReceiveMessage(messages = []) { messages.forEach((msg) => { if (msg.constructor === MESSAGETYPES.ShootSyncMeArrowID) { - scores.value.push(msg.target); + if (scores.value.length < total) { + scores.value.push(msg.target); + } power.value = msg.target.battery; // if (step.value === 2 && msg.target.dst / 100 > 5) { // if (step.value === 2 && msg.target.dst > 5) { diff --git a/src/pages/my-device.vue b/src/pages/my-device.vue index 2ef881d..37157e8 100644 --- a/src/pages/my-device.vue +++ b/src/pages/my-device.vue @@ -134,7 +134,7 @@ const backToHome = () => { @@ -162,7 +162,7 @@ const backToHome = () => { diff --git a/src/pages/my-growth.vue b/src/pages/my-growth.vue index fad6e1d..6e405f8 100644 --- a/src/pages/my-growth.vue +++ b/src/pages/my-growth.vue @@ -59,7 +59,7 @@ const onPractiseLoading = async (page) => { { const result = await createPractiseAPI(total); if (result) practiseId.value = result.id; - currentRound.value = 0; scores.value = []; start.value = true; }; @@ -36,9 +34,10 @@ const onReady = async () => { async function onReceiveMessage(messages = []) { messages.forEach((msg) => { if (msg.constructor === MESSAGETYPES.ShootSyncMeArrowID) { - scores.value.push(msg.target); + if (scores.value.length < total) { + scores.value.push(msg.target); + } power.value = msg.target.battery; - currentRound.value += 1; } if (msg.constructor === MESSAGETYPES.ShootSyncMePracticeID) { if (practiseId.value && practiseId.value === msg.practice.id) { @@ -70,7 +69,6 @@ async function onComplete() { practiseResult.value = {}; start.value = false; scores.value = []; - currentRound.value = 0; } } @@ -90,7 +88,7 @@ onUnmounted(() => { @@ -100,7 +98,6 @@ onUnmounted(() => { { - + diff --git a/src/pages/team-match.vue b/src/pages/team-match.vue index 2a2b40d..b25a657 100644 --- a/src/pages/team-match.vue +++ b/src/pages/team-match.vue @@ -117,6 +117,10 @@ async function onReceiveMessage(messages = []) { timerSeq.value = 0; scores.value = []; totalRounds.value = msg.groupUserStatus.config.maxRounds; + roundResults.value.push({ + redArrows: [], + blueArrows: [], + }); } if (msg.constructor === MESSAGETYPES.ToSomeoneShoot) { if (currentShooterId.value !== msg.userId) { @@ -149,11 +153,6 @@ async function onReceiveMessage(messages = []) { msg.target ); } - } else { - roundResults.value.push({ - redArrows: isRed ? [msg.target] : [], - blueArrows: isRed ? [] : [msg.target], - }); } } if (msg.constructor === MESSAGETYPES.CurrentRoundEnded) { @@ -167,7 +166,13 @@ async function onReceiveMessage(messages = []) { redPoints.value += result.redScore; // roundResults.value = result.roundResults; currentRound.value = result.currentRound + 1; - if (result.currentRound < 5) showRoundTip.value = true; + if (result.currentRound < 5) { + roundResults.value.push({ + redArrows: [], + blueArrows: [], + }); + showRoundTip.value = true; + } } if (msg.constructor === MESSAGETYPES.FinalShoot) { if (!isFinalShoot.value) {