张延森 il y a 3 ans
Parent
révision
9e60e9ba27
3 fichiers modifiés avec 63 ajouts et 3 suppressions
  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 Voir le fichier

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 Voir le fichier

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

+ 29
- 3
src/pages/game/index.vue Voir le fichier

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