Three!
About this app
Help the number 3 escape from the descending numbers!
3, Run! Game 3 Game Over 😵 Press F5 to Restart
Related apps
Put this on your site
Source
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>3, Run! Game</title>
<meta name="description" content="Help the number 3 escape from the descending numbers!">
<meta name="keywords" content="game, fun, escape, number, three, interactive">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
body, html {
height: 100%;
margin: 0;
display: flex;
justify-content: center;
align-items: center;
font-family: 'Press Start 2P', cursive;
background: linear-gradient(to right, #36d1dc, #5b86e5);
}
#game-container {
position: relative;
width: 300px;
height: 500px;
overflow: hidden;
border: 5px solid #fff;
border-radius: 10px;
background-color: #f9f9f9;
}
.number {
position: absolute;
width: 100%;
text-align: center;
font-size: 40px;
animation: descend 5s linear infinite;
}
@keyframes descend {
from { top: -50px; }
to { top: 500px; }
}
#number3 {
position: absolute;
bottom: 10px;
left: 50%;
transform: translateX(-50%);
font-size: 50px;
color: #e74c3c;
}
.game-over {
display: none;
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
background: rgba(0, 0, 0, 0.5);
flex-direction: column;
justify-content: center;
align-items: center;
color: #ffffff;
font-size: 20px;
}
.game-over.active {
display: flex;
}
@font-face {
font-family: 'Press Start 2P';
src: url('https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap');
}
</style>
<script>
document.addEventListener("DOMContentLoaded", function() {
const gameContainer = document.getElementById('game-container');
const number3 = document.getElementById('number3');
const gameOverScreen = document.getElementById('game-over');
let gameInterval;
function startGame() {
gameInterval = setInterval(() => {
const newNumber = document.createElement('div');
newNumber.classList.add('number');
newNumber.textContent = Math.floor(Math.random() * 9) + 1;
gameContainer.appendChild(newNumber);
}, 1000);
}
function checkCollision() {
const numbers = document.querySelectorAll('.number');
numbers.forEach(number => {
const numberRect = number.getBoundingClientRect();
const number3Rect = number3.getBoundingClientRect();
if (numberRect.top + numberRect.height > number3Rect.top &&
numberRect.left < number3Rect.right &&
numberRect.right > number3Rect.left) {
clearInterval(gameInterval);
gameOverScreen.classList.add('active');
}
});
}
document.addEventListener('keydown', (e) => {
if (e.key === 'ArrowLeft' && number3.offsetLeft > 0) {
number3.style.left = `${number3.offsetLeft - 20}px`;
}
if (e.key === 'ArrowRight' && number3.offsetLeft < gameContainer.offsetWidth - number3.offsetWidth) {
number3.style.left = `${number3.offsetLeft + 20}px`;
}
});
setInterval(checkCollision, 100);
startGame();
});
</script>
</head>
<body>
<div id="game-container">
<div id="number3">3</div>
<div id="game-over" class="game-over">
<div>Game Over 😵</div>
<div>Press F5 to Restart</div>
</div>
</div>
</body>
</html>
NEW APPS
These are apps made by the community!