张延森 3 anni fa
parent
commit
9e60e9ba27
3 ha cambiato i file con 63 aggiunte e 3 eliminazioni
  1. 31
    0
      src/components/MusicOnce.vue
  2. 3
    0
      src/main.js
  3. 29
    3
      src/pages/game/index.vue

+ 31
- 0
src/components/MusicOnce.vue Vedi File

@@ -0,0 +1,31 @@
1
+<template>
2
+  <audio class="mp3-once" :src="src" ref="audioRef"></audio>
3
+</template>
4
+
5
+<script setup>
6
+import { ref } from 'vue';
7
+
8
+const props = defineProps({
9
+  src: String,
10
+})
11
+
12
+const audioRef = ref()
13
+
14
+defineExpose({
15
+  play: () => {
16
+    audioRef.value.currentTime = 0
17
+    audioRef.value.play()
18
+  },
19
+  pause: () => audioRef.value.pause(),
20
+})
21
+
22
+</script>
23
+
24
+<style lang="less" scoped>
25
+.mp3-once {
26
+  display: block;
27
+  max-height: 1px;
28
+  max-width: 1px;
29
+  position: absolute;
30
+}
31
+</style>

+ 3
- 0
src/main.js Vedi File

@@ -4,6 +4,8 @@ import App from './App.vue'
4 4
 import router from './router'
5 5
 import BackPage from './components/BackPage.vue'
6 6
 import GrassGIF from './components/GrassGIF.vue'
7
+import MusicOnce from './components/MusicOnce.vue'
8
+
7 9
 // 创建 App实例
8 10
 const app = createApp(App)
9 11
 
@@ -23,6 +25,7 @@ app.use(router)
23 25
 app.mount('#app')
24 26
 app.component('BackPage', BackPage)
25 27
 app.component('GrassGIF', GrassGIF)
28
+app.component('MusicOnce', MusicOnce)
26 29
 
27 30
 // createApp(App).mount('#app')
28 31
 

+ 29
- 3
src/pages/game/index.vue Vedi File

@@ -1,6 +1,22 @@
1 1
 <template>
2
-  <div ref="el"></div>
3
-  <FireWorkListVue :center="center" :raduis="raduis" ref="firesRef" />
2
+  <div ref="el" />
3
+  <FireWorkListVue
4
+    ref="firesRef"
5
+    :center="center"
6
+    :raduis="raduis"
7
+  />
8
+  <MusicOnce
9
+    ref="bingoRef"
10
+    :src="bingoMusic"
11
+  />
12
+  <MusicOnce
13
+    ref="failRef"
14
+    :src="failMusic"
15
+  />
16
+  <MusicOnce
17
+    ref="successRef"
18
+    :src="successMusic"
19
+  />
4 20
 </template>
5 21
 
6 22
 <script setup>
@@ -9,6 +25,11 @@
9 25
   import FireWorkListVue from '@/components/FireWorkList.vue';
10 26
   import game from "./game.js";
11 27
 
28
+  const path = window.location.origin + window.location.pathname
29
+  const bingoMusic = `${path}/music/bingo.mp3`
30
+  const failMusic = `${path}/music/fail.mp3`
31
+  const successMusic = `${path}/music/bingo.mp3`
32
+
12 33
   // // 修复一个 two-js bug ,当页面返回的时候, 不能正常渲染
13 34
   // // 所以这边判断如果第二次进入页面就强制刷新
14 35
   // const loadSign = localStorage.getItem('loadSign');
@@ -18,6 +39,9 @@
18 39
   // }
19 40
 
20 41
   const el = ref()
42
+  const bingoRef = ref()
43
+  const failRef = ref()
44
+  const successRef = ref()
21 45
   const destroyRef = ref()
22 46
   const firesRef = ref()
23 47
   const router = useRouter()
@@ -33,7 +57,7 @@
33 57
       el: el.value,
34 58
       center,
35 59
       onError: () => {
36
-        alert('oo ~')
60
+        failRef.value.play()
37 61
         const t = setTimeout(() => {
38 62
           localStorage.setItem('loadSign', '1');
39 63
           router.push('/OverPage?type=lose')
@@ -41,6 +65,7 @@
41 65
         }, 1000)
42 66
       },
43 67
       onSuccess: () => {
68
+        successRef.value.play()
44 69
         firesRef.value.toggle()
45 70
         // alert('你真牛逼')
46 71
         const t = setTimeout(() => {
@@ -50,6 +75,7 @@
50 75
         }, 2000)
51 76
       },
52 77
       onBingo: () => {
78
+        bingoRef.value.play()
53 79
       }
54 80
     })
55 81