Mol maken
De volgende stap is dat we de mole daadwerkelijk gaan maken, hiervoor moeten we:
- een
img-element aanmaken - de css-class
moleaan hetimgtoevoegen - het plaatje
MOLEaan hetimgtoevoegen - Een EventListener op het
imgmaken zodat we 'm kunnen 'slaan' - Zodra we geraakt hebben, de score bijwerken
- Zodra we 'm geraakt hebben het plaatje vervangen door de
MOLE_WHACKED-afbeelding
/// Mole
const createMole = () => {
const img = document.createElement('img')
img.classList.add('mole')
img.src = MOLE
img.addEventListener('click', () => {
setScore()
img.src = MOLE_WACKED
})
return(img)
}
Score instellen
Je ziet dat we de score aanpassen zodra we de mol geraakt hebben. Laten we deze dan ook meteen maar even maken:
- tel
SCORE_ADDITIONbij de huidigescoreop - Schrijf de
scorenaar het scherm - verhoog (of niet) de snelheid
/// Score
const setScore = () => {
score += SCORE_ADDITION
scoreBoard.textContent = score
setSpeed()
}
Snelheid instellen
We kunnen nu de snelheid instellen:
- Check of de huidige
speedeen veelvoud is vanSPEED_UPDATE(modulus berekening) - en of de
speednog altijd groter is danSPEED_MIN - Zo ja, verhoog de
speed - Pas de tekst aan bij de snelheidsindicator (nieuwe functie)
const setSpeed = () => {
if( score % SPEED_UPDATE === 0 && speed > SPEED_MIN) {
speed -= SPEED_FASTER
speedBoard.textContent = getSpeedText(speed)
}
}
Speedtext
De tekst op de snelheidsindicator kunnen we nu aanpassen:
const getSpeedText = (speed) => {
let curSpeed = SPEEDS.filter( s => speed <= s.max)
return(curSpeed[curSpeed.length - 1].txt)
}
🏅
hacker level #6
That's all folks...
En dat was "Whack-a-Mole". Je ziet dat deze game niet zo gek veel om het lijf heeft.