利用JavaScript写一个打地鼠游戏,功能需求如下:1.地洞和地鼠已被提供图片素材;2.倒计时功能;3. 随机刷新老鼠功能;4.击打老鼠功能;5.击打老鼠时更换图片效果;6.老鼠被打时停留时间 ;7.实现扣分效果 ;8.功能按钮的锁定等等;9.目的是学会JS代码中各种函数的用法及基本语法和流程控制; 10.了解JS中内置对象的使用;11.事件函数的调用,通过使用内置对象完成特殊功能的实现例如:数学对象Math,日期对象Date,字符串对象 String 数组对象Array窗口对象 window 文档对象 document等
时间: 2024-03-26 16:38:19 浏览: 102
这是一个比较复杂的项目,需要一定的JavaScript编程技能才能完成。以下是一个简单的打地鼠游戏的代码实现:
HTML代码:
```
<!DOCTYPE html>
<html>
<head>
<title>打地鼠游戏</title>
<style>
body {
text-align: center;
}
img {
width: 100px;
height: 100px;
margin: 10px;
}
#timer {
font-size: 24px;
margin-bottom: 10px;
}
#score {
font-size: 24px;
margin-bottom: 10px;
}
</style>
</head>
<body>
<h1>打地鼠游戏</h1>
<div id="game">
<div id="timer"></div>
<div id="score"></div>
<img src="hole.png" id="hole1">
<img src="hole.png" id="hole2">
<img src="hole.png" id="hole3">
<img src="hole.png" id="hole4">
<img src="hole.png" id="hole5">
<img src="hole.png" id="hole6">
</div>
<button onclick="startGame()">开始游戏</button>
<script src="game.js"></script>
</body>
</html>
```
JavaScript代码:
```
// 定义全局变量
var holes = []; // 地洞数组
var score = 0; // 得分
var time = 30; // 倒计时
var timerId; // 计时器ID
// 在页面加载完成后执行初始化函数
window.onload = function() {
init();
}
// 初始化函数
function init() {
// 获取所有地洞的img元素并存入holes数组
for (var i = 1; i <= 6; i++) {
var hole = document.getElementById("hole" + i);
holes.push(hole);
}
// 隐藏所有地鼠的img元素
hideAllMoles();
// 显示初始得分和倒计时
document.getElementById("score").innerHTML = "得分:" + score;
document.getElementById("timer").innerHTML = "倒计时:" + time + "秒";
}
// 开始游戏函数
function startGame() {
// 按钮锁定
document.getElementsByTagName("button")[0].disabled = true;
// 开始倒计时
timerId = setInterval(function() {
time--;
document.getElementById("timer").innerHTML = "倒计时:" + time + "秒";
// 倒计时结束,游戏结束
if (time == 0) {
clearInterval(timerId);
document.getElementById("timer").innerHTML = "游戏结束";
document.getElementsByTagName("button")[0].disabled = false;
}
}, 1000);
// 随机刷新地鼠
setInterval(function() {
// 获取随机地洞的索引
var index = Math.floor(Math.random() * 6);
// 显示地鼠
showMole(index);
// 地鼠停留时间为1秒
setTimeout(function() {
hideMole(index);
}, 1000);
}, 1000);
}
// 显示指定地洞的地鼠
function showMole(index) {
var mole = holes[index].nextElementSibling;
mole.style.display = "block";
// 给地鼠添加点击事件
mole.onclick = function() {
// 增加得分
score++;
document.getElementById("score").innerHTML = "得分:" + score;
// 更换地鼠图片
mole.src = "hit.png";
// 地鼠被打后停留时间为0.5秒
setTimeout(function() {
mole.style.display = "none";
mole.src = "mole.png";
}, 500);
}
}
// 隐藏指定地洞的地鼠
function hideMole(index) {
var mole = holes[index].nextElementSibling;
mole.style.display = "none";
}
// 隐藏所有地鼠
function hideAllMoles() {
for (var i = 0; i < holes.length; i++) {
hideMole(i);
}
}
```
注意,本代码只是一个简单的示例,还有很多可以改进的地方,例如增加难度、增加音效、增加排行榜等等。
阅读全文