代碼應(yīng)該沒錯,可是沒效果啊,連棋盤效果也沒有,大神求教
var chess = document.getElementById("chess");
var context = chess.getContext("2d");
var chessBoard = [];
var me = true;
for (var i = 0; i < 15; i++) {
??? chessBoard[i] = [];
??? for (var j = 0; j < 15; j++)
??????? chessBoard[i][j] = 0;
}
context.strokeStyle = "#BFBFBF";
var logo = new Image();
logo.src = "index.jpg";
logo.onload = function () {
??? context.drawImage(logo, 0, 0, 450, 450);
??? drawChessBoard();
??? oneStep(0, 0, true);
??? oneStep(1, 1, false);
}
var drawChessBoard = function () {
??? for (var i = 0; i < 15; i++) {
??????? context.moveTo(15 + i * 30, 15);
??????? context.lineTo(15 + i * 30, 435);
??????? context.stroke();
??????? context.moveTo(15, 15 + i * 30);
??????? context.lineTo(435, 15 + i * 30);
??????? context.stroke();
??? }
}
var oneStep = function (i, j, me) {
??? context.beginPath();
??? context.arc(15 + i * 30, 15 + j * 30, 13, 0, 2 * Math.PI);
??? context.closePath();
??? var gradient = context.createRadialGradient(15 + i * 30 + 2, 15 + j * 30 - 2, 8, 15 + i * 30 + 2, 15 + j * 30 - 2, 5);
??? if (me) {
??????? gradient.addColorStop(0, "#0A0A0A");
??????? gradient.addColorStop(1, "#636766");
??? } else {
??????? gradient.addColorStop(0, "#D1D1D1");
??????? gradient.addColorStop(1, "#F9F9F9");
??? }
??? context.fillStyle = gradient;
??? context.fill(); //填充//context.stroke();描邊
}
chess.onclick = function (e) {
??? var x = Math.floor(e.offsetX / 30);
??? var y = Math.floor(e.offsetY / 30);
??? if (chessBoard[x][y] == 0) {
??????? oneStep(x, y, me);
??????? if (me)
??????????? chessBoard[x][y] = 1;
??????? else
??????????? chessBoard[x][y] = 2;
??????? me = !me;
??? }
}
2016-08-01
你這個代碼乍一看是drawChessBoard()這個方法沒有調(diào)用。但是主要原因是你工程目錄下根本沒有index.jpg這個文件!所以logo.onload在執(zhí)行到畫圖片的時候停止執(zhí)行這個方法了。所以棋盤沒有畫出來~~
解決辦法:在工程根目錄下加一個名為index.jpg的圖片;或者刪掉加載這個圖片的方法~~