Skip to content

Commit fea95ee

Browse files
committed
调整 bgm 播放的时机
1 parent ac7a3d5 commit fea95ee

4 files changed

Lines changed: 19 additions & 9 deletions

File tree

snake-game/.vscode/settings.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"liveServer.settings.port": 5501
3+
}

snake-game/audio/bgm.mp3

775 KB
Binary file not shown.

snake-game/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
<body>
1313
<!-- 背景音乐 -->
14-
<audio src="audio/bgm.mp3" id="bgm" autoplay loop></audio>
14+
<audio src="audio/bgm.mp3" id="bgm" loop></audio>
1515
<!-- 吃食物音效 -->
1616
<audio src="audio/eat.mp3" id="eatAudio"></audio>
1717
<!-- 死亡音效 -->

snake-game/js/index.js

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@ class Game {
1313
this.start = document.getElementById("start");
1414
this.pause = document.getElementById("pause");
1515
this.score = document.getElementById("score");
16+
// 获得 bgm
17+
this.bgm = document.getElementById("bgm");
1618
}
17-
19+
// 绑定事件
1820
bindEvent() {
1921
const eventHandler = event => {
2022
event = event || window.event;
@@ -60,14 +62,21 @@ class Game {
6062
return false;
6163
}
6264
// 监听开始按钮
63-
this.pause.addEventListener("click", () => clearInterval(snake.timer));
65+
this.pause.addEventListener("click", () => {
66+
clearInterval(snake.timer);
67+
this.bgm.pause();
68+
});
6469
// 监听暂停按钮
65-
this.start.addEventListener("click", () => snake.move());
70+
this.start.addEventListener("click", () => {
71+
this.bgm.load();
72+
this.bgm.play();
73+
snake.move();
74+
});
6675
// 监听重新开始按钮
6776
this.restart.addEventListener("click", () => {
6877
map.gameBox.innerHTML = "";
69-
map.bgm.load();
70-
map.bgm.play();
78+
this.bgm.load();
79+
this.bgm.play();
7180
clearInterval(snake.timer);
7281
map = new Map(20, 20);
7382
snake = new Snake();
@@ -108,8 +117,6 @@ class Map {
108117
this.col = col;
109118
// 初始化
110119
this.init(row, col);
111-
// 获得 bgm
112-
this.bgm = document.getElementById("bgm");
113120
}
114121

115122
// 初始化地图
@@ -282,7 +289,7 @@ class Snake {
282289
clearInterval(this.timer);
283290
this.dieAudio.load();
284291
this.dieAudio.play();
285-
map.bgm.pause();
292+
game.bgm.pause();
286293
}
287294

288295
// 蛇头碰到蛇身

0 commit comments

Comments
 (0)