Javascript 画布分数增量然后清除

Javascript 画布分数增量然后清除,javascript,canvas,html5-canvas,Javascript,Canvas,Html5 Canvas,我想在每次发生碰撞时更新我的分数。分数正确地相加1,并成为一帧的分数:1,然后返回到0。我不明白为什么每次碰撞时分数都会被清除并重置为零,而不是递增 // text c.fillStyle = "#ffff00"; c.font = "30px Arial"; c.fillText("Score: 0 ", 10, 50); var score = 0; var scorevalue = 0; // collision detection if (dy >= 400 &&am

我想在每次发生碰撞时更新我的分数。分数正确地相加1,并成为一帧的分数:1,然后返回到0。我不明白为什么每次碰撞时分数都会被清除并重置为零,而不是递增

// text
c.fillStyle = "#ffff00";
c.font = "30px Arial";
c.fillText("Score: 0 ", 10, 50);

var score = 0;
var scorevalue = 0;

// collision detection

if (dy >= 400 && (padxpos + 90 >= dx && padxpos <= 220)){
    t = 0;
    t += 0.1;
    dy = dyi + viy*t - (ay*t*t)/2;
    c.fillStyle = "#ffff00";
    c.font = "30px Arial";
    updateScore();
    }

// update score

function updateScore(){

    c.clearRect(0, 0, canvas.height, canvas.width);
    c.fillStyle = "#ff0000";
    c.fillRect(0, 0, canvas.width, canvas.height);
    c.fillStyle = "#ffff00";
    c.font = "30px Arial";
    scorevalue = ++score;
    c.fillText("Score: " + scorevalue, 10, 50);
    }
//文本
c、 fillStyle=“#ffffff00”;
c、 font=“30px Arial”;
c、 填充文本(“分数:0”,10,50);
var得分=0;
风险值=0;
//碰撞检测

如果(dy>=400&&(padxpos+90>=dx&&padxpos,以防其他任何人遇到相同的错误

在原始的填充文本中,我有这个

c.fillText("Score: 0 ", 10, 50);
所以每次分数更新c.filltext时,它都会画出零,即使分数正确递增。我所需要做的就是用变量填充原始文本。这个简单的错误花了很长时间才找到

c.fillText("Score: " + scorevalue, 10, 50);

您在何处以及如何初始化变量
score
scorevalue
?我将它们声明为全局变量,设置为零。我更新了上面的代码。错误不在您发布的代码中,它可以在不重置的情况下增加分数,