在canvas平台上添加记分板

时间:2015-07-30 05:17:08

标签: javascript

我正在做一些不同的事情,而不是将记分板放在Canvas之外,而是放在它里面并与画布属性相关联。

它功能齐全,但我不明白为什么每当清除一行时它都不会添加到分数中。

以下是那部分:

var totalPoints = 0;

function erase() {
    for ( var y = rows - 1; y >= 0; y--) {
        var full = true;
        for (var x = 0; x < columns; x++) {
            if (board[y][x] == 0) {
                full = false;
                totalPoints--;
                break;
            }
        }
        if (full) {
            totalPoints++;
            for ( var j = y; j > 0; j--) {
                for ( var x = 0; x < columns; x++) {
                    board[j][x] = board[j-1][x]
                }
            }
            ++y; 
        }
    }
}

function showOnload(){
    c.fillStyle = "black";
    c.fillText("scores", 200, 100);
    c.fillText(totalPoints, 200, 140);
}

注意:

我的showOnload页面的onload功能正在HTML,这是否与它不变的原因有关?

1 个答案:

答案 0 :(得分:3)

每次更改时都会更新分数。

var totalPoints = 0;

function erase() {
    for ( var y = rows - 1; y >= 0; y--) {
        var full = true;
        for (var x = 0; x < columns; x++) {
            if (board[y][x] == 0) {
                full = false;
                totalPoints--;
                showOnload();                //HERE
                break;
            }
        }
        if (full) {
            totalPoints++;
            showOnload();                    //HERE
            for ( var j = y; j > 0; j--) {
                for ( var x = 0; x < columns; x++) {
                    board[j][x] = board[j-1][x]
                }
            }
            ++y; 
        }
    }
}

function showOnload(){
    c.fillStyle = "black";
    c.fillText("scores", 200, 100);
    c.fillText(totalPoints, 200, 140);
}