WEBLEB
होम
संपादक
लॉग इन करें
Pro
हिंदी
English
Français
Español
Português
Deutsch
Italiano
हिंदी
स्टारगेज़र गेम
3110
Apolo
संपादक में खोलें
अपना कोड प्रकाशित करें
अनुशंसित
27 October 2023
सिम्पल टेट्रिस गेम
11 March 2024
पिंगपोंग गेम
19 May 2025
गेम एनीमेशन के लिए फ्लाई बॉक्स
HTML
Copy
Caza Estrellas
Selecciona la dificultad
Fácil
Normal
Difícil
Puntuación:
0
Vidas:
3
¡Juego terminado!
CSS
Copy
body { margin: 0; padding: 0; font-family: Arial, sans-serif; background-color: #000; overflow: hidden; /* Evita el desplazamiento de la página */ } #startMenu { display: flex; flex-direction: column; align-items: center; justify-content: center; position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background-color: rgba(0, 0, 0, 0.8); /* Fondo semi-transparente */ z-index: 999; /* Encima de todo */ } #menuTitle { color: #fff; font-size: 24px; margin-bottom: 20px; } #startMenu button { padding: 10px 20px; margin-bottom: 10px; font-size: 18px; background-color: #fff; border: none; border-radius: 5px; cursor: pointer; } #game { display: none; /* Ocultar el juego al principio */ position: relative; width: 100vw; /* Usa toda la vista de la ventana */ height: 100vh; /* Usa toda la vista de la ventana */ background-color: #000; border-bottom: 2px solid #fff; /* Línea blanca en la parte inferior */ } #player { position: absolute; width: 20px; height: 20px; background-color: #fff; bottom: 50px; left: 50%; transform: translateX(-50%); } #stars { position: absolute; } .star { position: absolute; width: 20px; height: 20px; background-color: #ffff00; border-radius: 50%; } #obstacles { position: absolute; } .obstacle { position: absolute; background-color: #ff0000; } #bottomLine { position: absolute; width: 100%; height: 2px; background-color: #fff; bottom: 0; } #score { position: absolute; top: 10px; left: 10px; color: #fff; } #lives { position: absolute; top: 10px; right: 10px; color: #fff; } #gameOver { display: none; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: #fff; font-size: 24px; }
JS
Copy
document.addEventListener('DOMContentLoaded', function () { const startMenu = document.getElementById('startMenu'); const gameContainer = document.getElementById('game'); const player = document.getElementById('player'); const starsContainer = document.getElementById('stars'); const scoreValue = document.getElementById('scoreValue'); const livesValue = document.getElementById('livesValue'); const gameOverText = document.getElementById('gameOver'); const finalScore = document.getElementById('finalScore'); let score, lives, gameSpeed, gameIsOver, gameLoopInterval; function updateScore() { score++; scoreValue.textContent = score; } function updateLives() { lives--; livesValue.textContent = lives; if (lives <= 0) { gameOver(); } } function gameOver() { gameIsOver = true; finalScore.textContent = `Puntuación final: ${score}`; gameOverText.style.display = 'block'; clearInterval(gameLoopInterval); // Redireccionar al menú después de un retraso setTimeout(() => { gameContainer.style.display = 'none'; startMenu.style.display = 'flex'; }, 3000); // 3000 milisegundos = 3 segundos } function startGame(difficulty) { // Ocultar la pantalla de juego terminado gameOverText.style.display = 'none'; // Restablecer el estado del juego gameIsOver = false; // Reiniciar variables y estado del juego score = 0; lives = 3; scoreValue.textContent = score; livesValue.textContent = lives; // Limpiar cualquier estrella existente starsContainer.innerHTML = ''; // Ocultar el menú de inicio startMenu.style.display = 'none'; // Mostrar el contenedor del juego gameContainer.style.display = 'block'; // Ejemplo de ajuste de velocidad y vidas switch (difficulty) { case 'easy': gameSpeed = 3; lives = 5; break; case 'medium': gameSpeed = 5; lives = 3; break; case 'hard': gameSpeed = 8; lives = 1; break; default: gameSpeed = 5; lives = 3; } livesValue.textContent = lives; // Generar estrellas gameLoopInterval = setInterval(() => { createStar(); }, 2000); } // Agregar eventos de clic a los botones del menú de inicio document.getElementById('easyBtn').addEventListener('click', function () { startGame('easy'); }); document.getElementById('mediumBtn').addEventListener('click', function () { startGame('medium'); }); document.getElementById('hardBtn').addEventListener('click', function () { startGame('hard'); }); function createStar() { const star = document.createElement('div'); star.className = 'star'; star.style.left = `${Math.random() * (window.innerWidth - 20)}px`; star.style.top = '0'; // Start from top starsContainer.appendChild(star); const fallInterval = setInterval(() => { if (!gameIsOver) { const starTop = parseInt(window.getComputedStyle(star).getPropertyValue('top')); if (starTop >= window.innerHeight) { clearInterval(fallInterval); star.remove(); updateLives(); } const starBounds = star.getBoundingClientRect(); const playerBounds = player.getBoundingClientRect(); if ( starBounds.left < playerBounds.right && starBounds.right > playerBounds.left && starBounds.top < playerBounds.bottom && starBounds.bottom > playerBounds.top ) { updateScore(); star.remove(); } star.style.top = `${starTop + gameSpeed}px`; } else { clearInterval(fallInterval); } }, 20); } function movePlayer(key) { if (!gameIsOver) { if (key === 'ArrowLeft') { const playerLeft = parseInt(window.getComputedStyle(player).getPropertyValue('left')); const newLeft = Math.max(0, playerLeft - 10); player.style.left = `${newLeft}px`; } else if (key === 'ArrowRight') { const playerLeft = parseInt(window.getComputedStyle(player).getPropertyValue('left')); const playerWidth = parseInt(window.getComputedStyle(player).getPropertyValue('width')); const newLeft = Math.min(window.innerWidth - playerWidth, playerLeft + 10); player.style.left = `${newLeft}px`; } } } function followMouse(event) { if (!gameIsOver) { const gameWidth = parseInt(window.getComputedStyle(document.getElementById('game')).getPropertyValue('width')); const playerWidth = parseInt(window.getComputedStyle(player).getPropertyValue('width')); const mouseX = event.clientX; const newLeft = Math.max(0, Math.min(gameWidth - playerWidth, mouseX - playerWidth / 2)); player.style.left = `${newLeft}px`; } } document.addEventListener('keydown', function (event) { movePlayer(event.key); }); document.addEventListener('mousemove', followMouse); });