画布代码没有更新,我不知道为什么

时间:2018-01-24 13:29:00

标签: javascript html5 canvas

我尝试制作一个简单的画布程序,用户点击该程序来创建弹跳移动的圆圈。它保持冻结,但仍然创建圆圈而不更新。我不确定最新情况,请帮忙!

  • 我使用构造函数
  • 将每个圆圈添加到一个圆圈数组中
  • setInterval循环似乎是冻结的,但即使发生这种情况,圈子仍然会被创建
  • 我很难调试这个,非常感谢任何建议



#default left join, so necessary add parameter
df3 = df1.join(df2, how='outer')
#default outer join, no parameter necessary
df3 = pd.concat([df1, df2], axis=1)




1 个答案:

答案 0 :(得分:0)

此代码:

self.draw = function()
{
    ctx.beginPath();
    ctx.arc(self.xCo, self.yCo, self.size, 0, 2*Math.PI);
    ctx.fillStyle = self.color;
    ctx.fill();
};

重写此功能:

function draw()
{
    // Loop
    requestAnimationFrame(draw);

    // Set NOW and DELTA
    now = Date.now();
    delta = now - then;

    // New frame
    if (delta > interval) {
        // Update THEN
        then = now - (delta % interval);
        // Our animation
        // Clear canvas then draw
        ctx.clearRect(0, 0, c.width, c.height);
        drawBackground();
        drawCos();
        drawCircles();
        drawTest();
    }
}

您需要重新考虑如何绘制圈子,因为每次触发点击事件时您都会重新绘制黑色画布。我的意思是,当触发点击时,您会应用新的坐标,颜色等等,而且可能不是您想要做的事情。

我的建议是每个圆圈创建画布并将它们附加到DIV中。

希望有所帮助!