Untitled
unknown
plain_text
5 months ago
3.1 kB
1
Indexable
<!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Minecraft Jump</title> <link rel="stylesheet" href="styles.css"> </head> <body> <canvas id="gameCanvas"></canvas> <script src="script.js"></script> </body> </html> body { margin: 0; display: flex; justify-content: center; align-items: center; height: 100vh; background-color: #87ceeb; /* Небо */ } canvas { border: 2px solid #000; background-color: #a9d0f5; /* Цвет фона для земли */ } const canvas = document.getElementById('gameCanvas'); const ctx = canvas.getContext('2d'); canvas.width = 400; canvas.height = 600; let player = { x: canvas.width / 2 - 15, y: canvas.height - 60, width: 30, height: 30, speed: 3, dy: 0, gravity: 0.5, jumpPower: -10, jumping: false }; let platforms = []; let score = 0; let isGameOver = false; // Создание платформ function createPlatforms() { for (let i = 0; i < 5; i++) { platforms.push({ x: Math.random() * (canvas.width - 50), y: canvas.height - (i * 100 + 100), width: 50, height: 10 }); } } // Обновление игры function update() { if (isGameOver) return; ctx.clearRect(0, 0, canvas.width, canvas.height); // Гравитация player.dy += player.gravity; player.y += player.dy; // Проверка на платформы if (player.y + player.height >= canvas.height) { isGameOver = true; } platforms.forEach(platform => { ctx.fillStyle = '#8B4513'; // Цвет платформы ctx.fillRect(platform.x, platform.y, platform.width, platform.height); // Проверка на столкновение с платформами if (player.x < platform.x + platform.width && player.x + player.width > platform.x && player.y + player.height < platform.y + platform.height && player.y + player.height + player.dy >= platform.y) { player.dy = player.jumpPower; player.jumping = true; score++; } }); // Отрисовка игрока ctx.fillStyle = '#00FF00'; // Цвет игрока ctx.fillRect(player.x, player.y, player.width, player.height); // Отображение счета ctx.fillStyle = '#000'; ctx.font = '20px Arial'; ctx.fillText('Счет: ' + score, 10, 20); // Проверка на границы if (player.y > canvas.height) { isGameOver = true; } requestAnimationFrame(update); } // Управление игроком window.addEventListener('keydown', (e) => { if (e.code === 'ArrowLeft') { player.x -= player.speed; } if (e.code === 'ArrowRight') { player.x += player.speed; } if (e.code === 'Space' && !player.jumping) { player.dy = player.jumpPower; player.jumping = true; } }); // Начало игры createPlatforms(); update();
Editor is loading...
Leave a Comment