diff --git a/typer.html b/typer.html index dac9b71..0ff6288 100644 --- a/typer.html +++ b/typer.html @@ -22,7 +22,7 @@
- + diff --git a/typer.js b/typer.js index f618ed9..0c3b520 100644 --- a/typer.js +++ b/typer.js @@ -1,7 +1,7 @@ /* global canvas ctx animation:writable gameLoop label loop paintCircle isIntersectingRectangleWithRectangle generateRandomNumber generateRandomInteger paintParticles createParticles processParticles */ let score = 0; let lives = 10; -let caseSensitive = true; +let caseSensitive = false; const center = { x: canvas.width / 2, @@ -50,10 +50,15 @@ function createLetters () { const dY = center.y - y; const norm = Math.sqrt(dX ** 2 + dY ** 2); const speed = generateRandomNumber(letter.lowestSpeed, letter.highestSpeed); + if (caseSensitive) { + newCode = Math.random() < 0.5 ? generateRandomInteger(25) + 65 : generateRandomInteger(25) + 97; + } else { + newCode = generateRandomInteger(25) + 97; + } letters.push({ x, y, - code: Math.random() < 0.5 ? generateRandomInteger(25) + 65 : generateRandomInteger(25) + 97, + code: newCode, speedX: dX / norm * speed, speedY: dY / norm * speed }); @@ -64,11 +69,13 @@ function removeLetters (frames) { for (const l of letters) { if (isIntersectingRectangleWithRectangle(l, letter.size, letter.size, center, center.radius, center.radius)) { if (--lives === 0) { - window.alert('GAME OVER!'); - window.location.reload(false); + ExplodeAllLetters(); + setTimeout(function() { + window.alert('GAME OVER!'); + window.location.reload(false); + }, 1500) } else if (lives > 0) { - window.alert('START AGAIN!'); - letters = []; + ExplodeAllLetters(); } break; } else { @@ -78,6 +85,15 @@ function removeLetters (frames) { } } +function ExplodeAllLetters() { + for (let i = letters.length - 1; i >= 0; i--) { + const l = letters[i]; + letters.splice(i, 1); + createParticles(l.x, l.y); + } + letters = []; +} + function type (i, l) { letters.splice(i, 1); score++;