html5做 涂色游戏,h5 canvas益智类填色画游戏代码
时间: 2023-08-12 10:27:55 浏览: 74
好的,以下是一个简单的HTML5 Canvas填色游戏的代码示例:
```html
<!DOCTYPE html>
<html>
<head>
<title>Canvas填色游戏</title>
<style>
canvas {
border: 1px solid black;
}
</style>
</head>
<body>
<canvas id="canvas" width="500" height="500"></canvas>
<script>
// 获取canvas元素
var canvas = document.getElementById("canvas");
var context = canvas.getContext("2d");
// 定义颜色数组
var colors = ["#FF0000", "#00FF00", "#0000FF", "#FFFF00", "#00FFFF"];
// 定义填充的默认颜色
var fillColor = "#FFFFFF";
// 定义填充的网格数量
var gridSize = 50;
// 定义网格的大小
var gridWidth = canvas.width / gridSize;
var gridHeight = canvas.height / gridSize;
// 画出网格
for (var i = 0; i < gridWidth; i++) {
for (var j = 0; j < gridHeight; j++) {
context.fillStyle = "#CCCCCC";
context.fillRect(i * gridSize, j * gridSize, gridSize, gridSize);
context.strokeRect(i * gridSize, j * gridSize, gridSize, gridSize);
}
}
// 给网格添加点击事件
canvas.addEventListener("click", function(event) {
// 获取鼠标点击的位置
var x = event.pageX - canvas.offsetLeft;
var y = event.pageY - canvas.offsetTop;
// 计算点击的网格位置
var gridX = Math.floor(x / gridSize);
var gridY = Math.floor(y / gridSize);
// 获取点击的颜色
var color = colors[Math.floor(Math.random() * colors.length)];
// 填充网格
context.fillStyle = color;
context.fillRect(gridX * gridSize, gridY * gridSize, gridSize, gridSize);
context.strokeRect(gridX * gridSize, gridY * gridSize, gridSize, gridSize);
});
// 添加清空按钮
var clearButton = document.createElement("button");
clearButton.innerHTML = "清空";
clearButton.addEventListener("click", function() {
context.clearRect(0, 0, canvas.width, canvas.height);
for (var i = 0; i < gridWidth; i++) {
for (var j = 0; j < gridHeight; j++) {
context.fillStyle = "#CCCCCC";
context.fillRect(i * gridSize, j * gridSize, gridSize, gridSize);
context.strokeRect(i * gridSize, j * gridSize, gridSize, gridSize);
}
}
});
document.body.appendChild(clearButton);
</script>
</body>
</html>
```
这个示例中,我们先画出一个网格,然后给网格添加点击事件。当网格被点击时,随机选择一个颜色进行填充。同时,我们还添加了一个清空按钮,用于清空画布。