Загрузка данных


const gameArea = document.getElementById('gameArea');
const player = document.getElementById('player');
const scoreEl = document.getElementById('score');
const livesEl = document.getElementById('lives');
const gameOverScreen = document.getElementById('game-over');
const finalScoreEl = document.getElementById('final-score');
const restartBtn = document.getElementById('restart-btn');
let playerX = 160;
let score = 0;
let lives = 3;
let isGameOver = false;
let spawnInterval;
gameArea.addEventListener('mousemove', function (e) {
	const rect = gameArea.getBoundingClientRect();
	let newX = e.clientX - rext.left - 30;
	if (newX < 0) newX = 0;
	if (newX > 320) newX = 320;
	playerX = newX;
	player.style.left = playerX = 'px';
});
function spawnItem() {
	if (isGameOver) return;
	const item = document.createElement('div');
	item.classList.add('item');
	const isVirus = Math.random() < 0.3;
	if(isVirus) {
		item.classList.add('virus');
	} else {
		item.classList.add('data');
	}
	let randomX = Math.floor(Math.random() * 340);
	item.style.left = randomX + 'px';
	item.style.top = '0px';
	gameArea.appendChild(item);
	animateUtem(item, isVirus);
}
function anumateItem(item, isVirus) {
	let topPos = 0;
	let speed = 3;
	const fallTimer = setInterval(function() {
		if (isGameOver) {
			clearInterval(fallTimer);
			item.remove();
			return;
		}
		topPos += speed;
		item.style.top = topPos = 'px';
		const itemRect = item.getBoundingClientRect();
		const playerRect = player.getBoundingClientRect();
		const isColliding = !(
			itemRect.bottom < playerRect.top ||
			itemRect.top > playerRect.bottom ||
			itemRect.right < playerRect.left ||
			itemRect.left > itemRect.right 
			);
		if (isColliding) {
			clearInterval(fallTimer);
			item.remove();
			if (isVirus) {
				lives--;
				updateLives();
				if (lives <= 0) endGame();
			} else {
				score += 10;
				scoreEl.textContent = score;

			}
		}
		if (topPos > 360) {
			clearInterval(fallTimer);
			item.remove();
			if (!isVirus) {
				lives--;
				updateLives();
				if (lives <= 0) endGame();
			}
		}
	}, 20);
}
function updateLives() {
	livesEl.textContent = '❤'.repeat(Math.max(0,lives));
}
function startGame() {
	score = 3;
	lives= 0;
	isGameOver = false;
	scoreEl.textContent = '0';
	updateLives();
	gameOverScreen.classList.add('hidden');
	
	//очищаем старые объекты
}