-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathscript.js
94 lines (78 loc) · 2.73 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
document.addEventListener('DOMContentLoaded', function () {
var score = 0;
var personalBest = parseInt(localStorage.getItem('personalBest')) || 0;
var isGameStarted = false;
var isGameOver = false;
var timeLeft = 15;
var mapWidth = 600;
var mapHeight = 400;
var gameOverElement = document.getElementById('gameOver');
document.getElementById('personalBest').innerText =
'Personal Best: ' + personalBest;
function toggleGameElements() {
if (isGameStarted) {
document.getElementById('destroyButton').style.display = 'block';
document.getElementById('startButton').style.display = 'none';
} else {
document.getElementById('startButton').style.display = 'block';
document.getElementById('destroyButton').style.display = 'none';
}
if (isGameOver) {
gameOverElement.style.display = 'block';
document.getElementById('startButton').style.display = 'block';
} else {
gameOverElement.style.display = 'none';
}
}
function startGame() {
score = 0;
isGameStarted = true;
isGameOver = false;
timeLeft = 15;
document.getElementById('score').innerText = 'Score: 0';
document.getElementById('timeLeft').innerText = 'Time Left: 15';
toggleGameElements();
startTimer();
}
document.getElementById('startButton').addEventListener('click', function () {
startGame();
});
document
.getElementById('destroyButton')
.addEventListener('click', function () {
if (!isGameOver) {
var audio = new Audio('assets/explosion.mp3');
audio.play();
var destructionEffect = document.createElement('div');
destructionEffect.className = 'destruction-effect';
var mapElement = document.getElementById('map');
destructionEffect.style.top = (mapHeight - 200) / 2 + 'px';
destructionEffect.style.left = (mapWidth - 200) / 2 + 'px';
mapElement.appendChild(destructionEffect);
setTimeout(function () {
mapElement.removeChild(destructionEffect);
}, 2000);
score++;
document.getElementById('score').innerText = 'Score: ' + score;
if (score > personalBest) {
personalBest = score;
document.getElementById('personalBest').innerText =
'Personal Best: ' + personalBest;
localStorage.setItem('personalBest', personalBest);
}
}
});
function startTimer() {
var timerInterval = setInterval(function () {
timeLeft--;
document.getElementById('timeLeft').innerText = 'Time Left: ' + timeLeft;
if (timeLeft <= 0) {
clearInterval(timerInterval);
isGameOver = true;
isGameStarted = false;
toggleGameElements();
}
}, 1000);
}
toggleGameElements();
});