你好,我试图添加到我的html棋盘,但找不到似乎是我的代码出了什么问题。我已经做了一个功能,使我的作品,但我一直得到一个空白屏幕。
<!DOCTYPE html>
<html>
<head>
<title>Canvas - Chess Board</title>
<meta charset="utf-8">
<script src="http://code.jquery.com/jquery-2.2.4.min.js"></script>
</head>
<style>
p {
position: absolute;
left: 200px;
top: 45px;
}
</style>
<body>
<div style="padding:30px">
<h2>Chess Board</h2>
<p><input type="text" id="color"></p>
<canvas id="myCanvas" width="480" height="480" style="border:1px solid #c3c3c3;">
</canvas>
</div>
<script>
$(document).ready(function() {
var gColor = "black";
var c = $("#myCanvas")[0];
var ctx = c.getContext("2d");
ctx.lineWidth = 2;
ctx.strokeStyle = "black";
drawBoard();
$("#color").click(function () {
gColor = $("#color").val();
if (gColor > "")
drawBoard();
drawpieces(ctx, step, "red", step);
drawpieces(ctx, step*7, "white", step);
});
function drawBoard() {
var x, y, step = 60, step2 = 120;
ctx.rect(0,0,480,480);
ctx.stroke();
ctx.save();
for (var k=0; k<2; k++) {
step2 -= step;
ctx.translate(0, step*k);
console.log("translate:("+0+","+step*k+")");
for (var y=0; y<4; y++) {
for (var i=0; i<4; i++) {
x = i * 2 * step + step2;
ctx.fillStyle = gColor;
ctx.fillRect(x,y*step*2,step,step);
console.log("fillRect: "+x+","+y*step*2+","+step+","+step+","+gColor);
}
}
}
ctx.restore();
}
function drawPieces = (ctx, y , color, step){
for (let i = y; i < 2 * step + y; i += step) {
for (let j = step / 2; j < 8 * step; j += step) {
ctx.beginPath();
ctx.arc(j, i - step / 2, step / 3, 0, Math.PI * 2);
ctx.fill();
}
}
});
</script>
</body>
</html>
我需要在上面两行加上红色的,在下面两行加上白色的。我似乎不明白为什么我的代码不起作用。任何帮助都将不胜感激