为了账号安全,请及时绑定邮箱和手机立即绑定

代码应该没错,可是没效果啊,连棋盘效果也没有,大神求教


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;

    }

}

正在回答

1 回答

你这个代码乍一看是drawChessBoard()这个方法没有调用。但是主要原因是你工程目录下根本没有index.jpg这个文件!所以logo.onload在执行到画图片的时候停止执行这个方法了。所以棋盘没有画出来~~

解决办法:在工程根目录下加一个名为index.jpg的图片;或者删掉加载这个图片的方法~~

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

代码应该没错,可是没效果啊,连棋盘效果也没有,大神求教

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信