diff --git a/src/components/ScoreResult.vue b/src/components/ScoreResult.vue
index 69fff85..2c265d5 100644
--- a/src/components/ScoreResult.vue
+++ b/src/components/ScoreResult.vue
@@ -1,5 +1,5 @@
@@ -68,8 +74,8 @@ onMounted(() => {
完成{{ result.arrows.length }}箭,获得{{ result.arrows.length }}完成{{ validArrows }}箭,获得{{ validArrows }}点经验
@@ -90,12 +96,12 @@ onMounted(() => {
- {{ result.arrows[index] ? result.arrows[index].ring : 0
- }}环
+ {{ getRing(result.arrows[index])
+ }}环
-
+
{
/>
{{ finished ? "完成" : "重新挑战" }}{{ validArrows === total ? "完成" : "重新挑战" }}
diff --git a/src/pages/first-try.vue b/src/pages/first-try.vue
index 35a056b..c14bbe9 100644
--- a/src/pages/first-try.vue
+++ b/src/pages/first-try.vue
@@ -138,10 +138,10 @@ const nextStep = async () => {
};
const onClose = () => {
- if (
- practiseResult.value.arrows &&
- practiseResult.value.arrows.length === total
- ) {
+ const validArrows = (practiseResult.value.arrows || []).filter(
+ (a) => a.x !== -30 && a.y !== -30
+ );
+ if (validArrows.length === total) {
setTimeout(() => {
practiseResult.value = {};
showGuide.value = false;
@@ -255,7 +255,11 @@ const onClose = () => {
:onClose="onClose"
:result="practiseResult"
:tipSrc="`../static/${
- practiseResult.arrows.length < total ? 'un' : ''
+ practiseResult.arrows.filter(
+ (arrow) => arrow.x !== -30 && arrow.y !== -30
+ ).length < total
+ ? 'un'
+ : ''
}finish-tip.png`"
/>
diff --git a/src/pages/practise-one.vue b/src/pages/practise-one.vue
index 0052b4c..5aec9a8 100644
--- a/src/pages/practise-one.vue
+++ b/src/pages/practise-one.vue
@@ -98,10 +98,10 @@ async function onReceiveMessage(messages = []) {
}
async function onComplete() {
- if (
- practiseResult.value.arrows &&
- practiseResult.value.arrows.length === total
- ) {
+ const validArrows = (practiseResult.value.arrows || []).filter(
+ (a) => a.x !== -30 && a.y !== -30
+ );
+ if (validArrows.length === total) {
uni.navigateBack();
} else {
practiseId.value = "";
@@ -178,7 +178,11 @@ onBeforeUnmount(() => {
:onClose="onComplete"
:result="practiseResult"
:tipSrc="`../static/${
- practiseResult.arrows.length < total ? 'un' : ''
+ practiseResult.arrows.filter(
+ (arrow) => arrow.x !== -30 && arrow.y !== -30
+ ).length < total
+ ? 'un'
+ : ''
}finish-tip.png`"
/>
diff --git a/src/pages/practise-two.vue b/src/pages/practise-two.vue
index 6594e95..3b32192 100644
--- a/src/pages/practise-two.vue
+++ b/src/pages/practise-two.vue
@@ -64,16 +64,17 @@ async function onReceiveMessage(messages = []) {
}
async function onComplete() {
- if (
- practiseResult.value.arrows &&
- practiseResult.value.arrows.length === total
- ) {
+ const validArrows = (practiseResult.value.arrows || []).filter(
+ (a) => a.x !== -30 && a.y !== -30
+ );
+ if (validArrows.length === total) {
uni.navigateBack();
} else {
practiseId.value = "";
practiseResult.value = {};
start.value = false;
scores.value = [];
+ currentRound.value = 0;
}
}
@@ -134,7 +135,11 @@ onBeforeUnmount(() => {
:onClose="onComplete"
:result="practiseResult"
:tipSrc="`../static/${
- practiseResult.arrows.length < total ? '2un' : ''
+ practiseResult.arrows.filter(
+ (arrow) => arrow.x !== -30 && arrow.y !== -30
+ ).length < total
+ ? '2un'
+ : ''
}finish-tip.png`"
/>