介绍:
一个简单的打怪小游戏,点击开始游戏后,出现攻击按钮,击败怪物后可以选择继续下一关和结束游戏。
继续下一个怪兽的血量会增加5点,攻击按钮会随机变色。
效果图:
html代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>打怪</title> <link rel="stylesheet" href="../layui/css/layui.css" media="all"> <style> /* 添加样式以中心布局两个游戏并增加一些间距 */ .game-container { text-align: center; margin: 5% auto; } .game-container > button { margin: 0 5px; /* 添加按钮间距 */ } #result, #message { margin: 20px 0; } </style> </head> <body> <!-- 在HTML中添加开始游戏按钮 --> <div class="game-container"> <h1>打怪小游戏</h1> <h2 id="monster">怪物 HP: <span id="monsterHp">10</span></h2> <button id="startGameButton" class="layui-btn layui-btn-primary">开始游戏</button> <button id="attackButton" class="layui-btn layui-btn-warm" style="display: none;">攻击怪物</button> <button id="nextLevelButton" class="layui-btn layui-btn-normal" style="display: none;">进入下一关</button> <button id="endGameButton" class="layui-btn layui-btn-danger" style="display: none;">结束游戏</button> <p id="message"></p> </div> <script src="./gamejs/game.js"></script> </body> </html>
js代码:
document.addEventListener('DOMContentLoaded', () => { const monsterHpElement = document.getElementById('monsterHp'); const messageElement = document.getElementById('message'); const startGameButton = document.getElementById('startGameButton'); const nextLevelButton = document.getElementById('nextLevelButton'); const endGameButton = document.getElementById('endGameButton'); let initialHp = 10; let monsterHp; let level = 1; const hpIncrease = 5; const attackButton = document.getElementById('attackButton'); function startGame() { monsterHp = initialHp; level = 1; monsterHpElement.innerText = monsterHp; messageElement.innerText = '怪物出现了!'; resetAttackButtonColor(); attackButton.style.display = 'inline-block'; startGameButton.style.display = 'none'; } function updateMonsterStatus() { if (monsterHp > 0) { monsterHp--; monsterHpElement.innerText = monsterHp; messageElement.innerText = `怪物受到伤害!还剩 ${monsterHp} 生命值。`; } else { nextLevelButton.style.display = 'inline-block'; endGameButton.style.display = 'inline-block'; attackButton.style.display = 'none'; messageElement.innerText = '恭喜你,打败了怪物!选择下一步操作。'; } } function levelUp() { level++; monsterHp = initialHp + hpIncrease * (level - 1); monsterHpElement.innerText = monsterHp; messageElement.innerText = `第 ${level} 关开始!怪物生命值为 ${monsterHp}。`; attackButton.style.display = 'inline-block'; nextLevelButton.style.display = 'none'; endGameButton.style.display = 'none'; changeAttackButtonColor(); } function endGame() { messageElement.innerText = '游戏结束,感谢您的玩耍!点击下方按钮可以重新开始。'; attackButton.style.display = 'none'; nextLevelButton.style.display = 'none'; endGameButton.style.display = 'none'; startGameButton.style.display = 'inline-block'; // 显示开始游戏按钮 } function resetAttackButtonColor() { attackButton.className = 'layui-btn layui-btn-warm'; // 这里设置默认的按钮颜色样式 } function changeAttackButtonColor() { // 定义一组可能的颜色 const colors = ['layui-btn-primary', 'layui-btn-normal', 'layui-btn-warm', 'layui-btn-danger']; // 随机选择一个颜色 const randomColor = colors[Math.floor(Math.random() * colors.length)]; attackButton.className = `layui-btn ${randomColor}`; // 更新按钮的 class 以改变颜色 } startGameButton.addEventListener('click', startGame); nextLevelButton.addEventListener('click', levelUp); endGameButton.addEventListener('click', endGame); attackButton.addEventListener('click', updateMonsterStatus); }); document.addEventListener02('DOMContentLoaded', () => { const monsterHpElement = document.getElementById('monsterHp'); const messageElement = document.getElementById('message'); const startGameButton = document.getElementById('startGameButton'); const nextLevelButton = document.getElementById('nextLevelButton'); const endGameButton = document.getElementById('endGameButton'); let initialHp = 10; let monsterHp; let level = 1; const hpIncrease = 5; const attackButton = document.getElementById('attackButton'); function startGame() { monsterHp = initialHp; level = 1; monsterHpElement.innerText = monsterHp; messageElement.innerText = '怪物出现了!'; attackButton.style.display = 'inline-block'; startGameButton.style.display = 'none'; } function updateMonsterStatus() { if (monsterHp > 0) { monsterHp--; monsterHpElement.innerText = monsterHp; messageElement.innerText = `怪物受到伤害!还剩 ${monsterHp} 生命值。`; } else { nextLevelButton.style.display = 'inline-block'; endGameButton.style.display = 'inline-block'; attackButton.style.display = 'none'; messageElement.innerText = '恭喜你,打败了怪物!选择下一步操作。'; } } function levelUp() { level++; monsterHp = initialHp + hpIncrease * (level - 1); monsterHpElement.innerText = monsterHp; messageElement.innerText = `第 ${level} 关开始!怪物生命值为 ${monsterHp}。`; attackButton.style.display = 'inline-block'; nextLevelButton.style.display = 'none'; endGameButton.style.display = 'none'; } function endGame() { messageElement.innerText = '游戏结束,感谢您的玩耍!点击下方按钮可以重新开始。'; attackButton.style.display = 'none'; nextLevelButton.style.display = 'none'; endGameButton.style.display = 'none'; startGameButton.style.display = 'inline-block'; // 显示开始游戏按钮 } startGameButton.addEventListener('click', startGame); nextLevelButton.addEventListener('click', levelUp); endGameButton.addEventListener('click', endGame); attackButton.addEventListener('click', updateMonsterStatus); });