-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
115 lines (93 loc) · 3.19 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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
const screens = document.querySelectorAll('.screen')
const chooseInsectButtons = document.querySelectorAll('.choose-insect-btn')
const startButton = document.querySelector('.start-btn')
const closeButton = document.querySelector('.close')
const alert = document.querySelector('.alert')
const gameContainer = document.querySelector('.game-container')
const timeEl = document.querySelector('.time')
const scoreEl = document.querySelector('.score')
const message = document.querySelector('.message')
let seconds = 0
let score = 0
let selectedInsect = {}
startButton.addEventListener('click', ()=>{
screens[0].classList.add('up')
})
closeButton.addEventListener('click', ()=> {
message.classList.remove('visible')
})
//What to do when an insect is selected
chooseInsectButtons.forEach(btn =>{
btn.addEventListener('click', ()=>{
const img = btn.querySelector('img')
const src = img.getAttribute('src')
const alt = img.getAttribute('alt')
//Extract src and alt from selected insect
selectedInsect = {src, alt}
screens[1].classList.add('up')
setTimeout(createInsect, 1000)
startGame()
})
})
function startGame(){
setInterval(increaseTime, 1000 );
}
function increaseTime(){
let m = Math.floor(seconds / 60)
let s = seconds % 60
m = m < 10 ? `0${m}` : m
s = s < 10 ? `0${s}` : s
timeEl.innerHTML = `Time ${m}:${s} `
seconds++
}
//Create an insect element with the selected insect and place it in random locations
function createInsect(){
const insect = document.createElement('div')
insect.classList.add('insect')
const {x , y} = getRandomLocation()
insect.style.left = `${x}px`
insect.style.top = `${y}px`
insect.innerHTML = `<img src="${selectedInsect.src}" alt="${selectedInsect.alt}" style="transform : rotate(${Math.random()*360}deg)" />`
insect.addEventListener('click', catchInsect)
gameContainer.appendChild(insect)
}
function getRandomLocation(){
const width = window.innerWidth
const height = window.innerHeight
const x = Math.random() * (width - 150) + 100
const y = Math.random() * (height - 150) + 100
return {x , y}
}
function catchInsect(){
increaseScore()
this.classList.add('caught')
setTimeout(() => this.remove() , 2000 );
addInsects()
}
function addInsects(){
setTimeout(createInsect, 1000);
setTimeout(createInsect, 1600);
}
function increaseScore(){
score++
if(score == 20){
message.classList.add('visible')
}
if(score==50){
message.classList.add('visible')
alert.innerHTML = `Oh boi you are persistant ! <br> But you're still playing an impossible game!`
}
if(score==65){
message.classList.add('visible')
alert.innerHTML = ` Dayum! I'm impressed by your commitment! <br> You still wanna continue?`
}
if(score==100){
message.classList.add('visible')
alert.innerHTML = ` Okay you win lmao! <br> You can stop now please! Like really stop now!`
}
if(score==100){
message.classList.add('visible')
alert.innerHTML = ` Or you could go on you know! <br> I'm not your mother!`
}
scoreEl.innerHTML = `Score: ${score}`
}