集中实验3 方块游戏 实验要求: 1)在800*800的框中每隔2秒随机位置生成小方块,宽高为5px,颜色为绿色,随着生存时间的增加,宽高逐渐变大,最多为10px,颜色逐渐转红; 2)小方块在框中随机移动,每次移动距离在5px以内,不能移出框外; 3)用鼠标点击任意一个方块,则方块消失; 4)如果框中的方块数目少于20个,则新生成一个。(5)方块逐渐变红变大)
时间: 2023-09-16 11:14:21 浏览: 69
好的,这个方块游戏的实现可以分为以下几个步骤:
1. 创建一个800*800的框,并在其中随机生成小方块。
2. 使用定时器每隔2秒生成一个新的小方块,并让已有的小方块随机移动。
3. 如果鼠标点击了某个小方块,则让该小方块消失。
4. 如果框中的方块数目少于20个,则新生成一个小方块。
5. 小方块随着生存时间的增加,宽高逐渐变大,颜色逐渐转红。
下面是实现这个方块游戏的代码示例:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>方块游戏</title>
<style>
#box {
width: 800px;
height: 800px;
border: 1px solid #000;
position: relative;
}
.block {
width: 5px;
height: 5px;
background-color: green;
position: absolute;
}
</style>
</head>
<body>
<div id="box"></div>
<script>
var box = document.getElementById('box');
var blocks = []; // 存储所有小方块的数组
// 随机生成一个小方块
function createBlock() {
var block = document.createElement('div');
block.className = 'block';
block.style.left = Math.random() * 790 + 'px';
block.style.top = Math.random() * 790 + 'px';
box.appendChild(block);
blocks.push(block);
}
// 移动小方块
function moveBlocks() {
blocks.forEach(function(block) {
var x = parseInt(block.style.left, 10);
var y = parseInt(block.style.top, 10);
x += Math.random() * 11 - 5;
y += Math.random() * 11 - 5;
x = Math.max(Math.min(x, 795), 0);
y = Math.max(Math.min(y, 795), 0);
block.style.left = x + 'px';
block.style.top = y + 'px';
// 小方块的宽高逐渐变大,颜色逐渐变红
var size = parseInt(block.style.width, 10);
if (size < 10) {
size++;
block.style.width = size + 'px';
block.style.height = size + 'px';
}
var color = block.style.backgroundColor;
var rgb = color.match(/\d+/g);
if (rgb[0] < 255) {
rgb[0]++;
block.style.backgroundColor = 'rgb(' + rgb.join(',') + ')';
}
});
}
// 鼠标点击小方块
function removeBlock(event) {
var target = event.target;
if (target.className === 'block') {
target.parentNode.removeChild(target);
blocks.splice(blocks.indexOf(target), 1);
}
}
// 定时器每隔2秒生成一个新的小方块
setInterval(function() {
if (blocks.length < 20) {
createBlock();
}
}, 2000);
// 定时器让小方块随机移动
setInterval(moveBlocks, 50);
// 鼠标点击小方块
box.addEventListener('click', removeBlock);
</script>
</body>
</html>
```
以上就是一个简单的方块游戏的实现,你可以在此基础上进行修改和完善。
阅读全文