1

現在、三目並べゲームを作成しようとしています。

実行すると、キャンバス上の描画が完全に台無しになります。円は次の十字が描かれるまで描かれず、十字と円の間に奇妙な線があります。(写真を投稿しようとしましたが、10回の担当者が必要です)

なぜこれが起こっているのかわかりませんが、描画プロセスのどこかに問題があることはわかっています.

function drawIt(w, h, p) {
    //w is the x coordinates for the square where it is supposed to draw
    //the h is the y coordinates and p is just the number of the square
    if (turn == 0 && !pressed[p]) {
        ctx.moveTo(w, h);
        ctx.lineTo(w + (width / 3), h + (height / 3));
        ctx.moveTo(w + (width / 3), h);
        ctx.lineTo(w, h + (height / 3));
        ctx.stroke();
        turn = 1;
        pressed[p] = true;
    } else if (turn == 1 && !pressed[p]) {
        ctx.arc(w + (width / 6), h + (height / 6), width / 6, 0, 2 * Math.PI);
        //width and height is just the width and the height of the canvas
        ctx.stroke;
        turn = 0;
        pressed[p] = true;
    } else if (pressed[p]) {
        alert("!!!");
    }
}

私はjavascriptが初めてなので、すべての助けをいただければ幸いです。

4

2 に答える 2

1

2 番目の ctx.stroke には括弧がないため、円は描画されません。ただし、円は開いているパスに追加されているため、後で ctx.stroke() を呼び出したときに描画されます

于 2013-11-03T20:26:43.087 に答える
0

パスを開始するたびに ctx.beginPath() を追加してみてください。そうしないと、引き分けが山積みになります。

于 2013-11-03T19:55:09.430 に答える