@@ -1003,10 +604,6 @@ const showShareMask = ref(false);
}
}
-.gui-ani-end-post {
- /* 确保每个海报都能正确对齐 */
- object-fit: contain;
-}
@keyframes last-btn-in {
0% {
@@ -1077,170 +674,43 @@ const showShareMask = ref(false);
}
}
-.scoreboard {
- position: absolute;
- top: 44%;
- width: 100%;
-
- .bar-container {
- width: 100%;
- justify-content: center;
- align-items: center;
- display: flex;
- gap: 2vw;
- }
-
- .bar {
- position: relative;
- height: 60vw;
- width: 26vw;
- background-size: contain;
- background-repeat: no-repeat;
- mask-image: linear-gradient(to bottom, black, black, transparent);
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- gap: 1.5vw;
- animation: bar-in 0.7s ease-out forwards;
- transform: translateY(150%);
-
- .name {
- font-size: 4.5vw;
- }
-
- .time {
- font-size: 3vw;
- }
-
- .region {
- font-size: 3vw;
- color: white;
- background-color: #7EA0CA;
- padding: 0 2vw;
- border-radius: 2vw;
- }
-
- .store {
- max-width: 13vw;
- text-align: center;
- font-size: 2.4vw;
- color: gray;
- }
-
- &.first {
- top: 3vw;
- background-image: url('../assets/game/first.webp');
- animation-delay: 0ms;
- }
-
- &.second {
- background-image: url('../assets/game/second.webp');
- animation-delay: 250ms;
- top: 9vw;
- }
-
- &.third {
- background-image: url('../assets/game/third.webp');
- animation-delay: 500ms;
- top: 9vw;
- }
- }
-
- .lines {
- display: flex;
- position: relative;
- top: -5vw;
- flex-direction: column;
- align-items: center;
- gap: 1vw;
-
- .line {
- display: flex;
- align-items: center;
- justify-content: space-between;
- width: 80%;
- font-size: 3.2vw;
- background-color: #FFFFFF;
- padding: 0 2vw;
- height: 8vw;
- border-radius: 8vw;
- animation: line-in 0.5s ease-out forwards;
- transform: translateX(-150%);
-
- .rank {
- // italic
- font-style: italic;
- flex: 1;
- font-size: 4vw;
- text-align: center;
- color: #7EA0CA;
- }
-
- .name {
- flex: 2;
- text-align: center;
- border-right: .35vw solid black;
- }
-
- .time {
- flex: 2;
- text-align: center;
- border-right: .35vw solid black;
- }
-
- .region {
- flex: 2;
- color: gray;
- text-align: center;
- }
- }
- }
-}
-
-
-.wecare-title {
- animation: scale-in 0.4s ease-in-out forwards;
- animation-delay: 3.9s;
- scale: 0;
-}
-
-.icon-cloud {
- animation: scale-out 0.4s ease-in-out forwards;
- animation-delay: 3.5s;
-
- img {
- position: absolute;
- width: 16vw;
- transition: all 4s ease;
- animation: scale-in 0.4s ease-in-out forwards;
- transform: translate(-50%, -50%);
- transform-origin: left top;
- scale: 0;
- }
-}
-
-@keyframes gift-popup-bg {
- 0% {
- backdrop-filter: blur(0px);
- opacity: 0;
- }
-
- 100% {
- backdrop-filter: blur(16px);
- opacity: 1;
- }
-}
-
.gift-popup {
position: fixed;
inset: 0;
width: 100%;
height: 100%;
z-index: 1000;
+ backdrop-filter: blur(16px);
+ opacity: 1;
+}
+
+.gift-popup-enter-active {
+ transition: all 1.2s ease-in-out;
+ transition-delay: 0.7s;
+}
+
+.gift-popup-leave-active {
+ transition: all 0.3s ease-in-out;
+}
+
+.gift-popup-enter-from {
+ backdrop-filter: blur(0px);
+ opacity: 0;
+}
+
+.gift-popup-enter-to {
+ backdrop-filter: blur(16px);
+ opacity: 1;
+}
+
+.gift-popup-leave-from {
+ backdrop-filter: blur(16px);
+ opacity: 1;
+}
+
+.gift-popup-leave-to {
backdrop-filter: blur(0px);
opacity: 0;
- animation: gift-popup-bg 1.2s ease-in-out 0.7s forwards;
}
.dot {
@@ -1317,9 +787,7 @@ const showShareMask = ref(false);
prompt-out 0.8s cubic-bezier(0.71, 0.13, 0.43, 2.5) 2s forwards;
}
-.p-machine {
- animation: warp-in 0.5s ease-out forwards;
-}
+
.abs {
position: absolute;
@@ -1330,43 +798,4 @@ const showShareMask = ref(false);
pointer-events: none;
opacity: 0;
}
-
-.action {
- display: flex;
- position: absolute;
- bottom: 19vw;
- left: 50%;
- transform: translateX(-50%);
- gap: 2vw;
-
- img {
- flex: 1;
- width: 28vw;
- scale: 0;
- animation: scale-in 0.4s ease-in-out forwards;
- }
-}
-
-.poster-container {
- /* 隐藏滚动条但保持滚动功能 */
- scrollbar-width: none;
- /* Firefox */
- -ms-overflow-style: none;
- /* IE and Edge */
-
- &::-webkit-scrollbar {
- display: none;
- /* Chrome, Safari, Opera */
- }
-}
-
-.poster-wrapper {
- /* 确保滚动流畅 */
- scroll-behavior: smooth;
-}
-
-.gui-ani-end-post {
- /* 确保每个海报都能正确对齐 */
- object-fit: contain;
-}
diff --git a/src/pages/Game/ActionArea.vue b/src/pages/Game/ActionArea.vue
new file mode 100644
index 0000000..85ed167
--- /dev/null
+++ b/src/pages/Game/ActionArea.vue
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/Game/GatheringCloud.vue b/src/pages/Game/GatheringCloud.vue
new file mode 100644
index 0000000..d7485f9
--- /dev/null
+++ b/src/pages/Game/GatheringCloud.vue
@@ -0,0 +1,260 @@
+
+
+
+
+
+
![]()
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/Game/LastPage.vue b/src/pages/Game/LastPage.vue
new file mode 100644
index 0000000..2c9f69d
--- /dev/null
+++ b/src/pages/Game/LastPage.vue
@@ -0,0 +1,157 @@
+
+
+
+
+
+
+
+

+
+

+

+
+
+
+
{{
+ userdata.username }}
+
+ 用时
+
+
+
+ {{ fmtTime(timeSpent / 1000) }}
+
+
![]()
+
+
+
+
+ {{ userdata.region }}
+
{{
+ userdata.store }}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/Game/Quiz.vue b/src/pages/Game/Quiz.vue
new file mode 100644
index 0000000..0a5abc5
--- /dev/null
+++ b/src/pages/Game/Quiz.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/Game/ScoreBoard.vue b/src/pages/Game/ScoreBoard.vue
new file mode 100644
index 0000000..8d3cfb4
--- /dev/null
+++ b/src/pages/Game/ScoreBoard.vue
@@ -0,0 +1,161 @@
+
+
+
+
+
+
+
{{ item.name }}
+
{{ fmtTime(item.time) }}
+
{{ item.region }}
+
{{ item.store }}
+
+
+
+
+
{{ index + 4 }}
+
{{ item.name }}
+
{{ fmtTime(item.time) }}
+
{{ item.region }}
+
+
+
+
+
+
\ No newline at end of file