javascript改变画布中球的速度

时间:2012-08-07 17:17:58

标签: javascript html canvas

我有一个球在画布上弹跳,我正试图改变球的速度,我不会让它上班。我正在努力实现速度,就像我在做球的颜色和球宽但不起作用。代码中的setInterval是改变速度但不能从speedx输入中获取值的。

的javascript:

function draw(){
 var canvas = document.getElementById('ball');
 context = ball.getContext('2d');
 //context.clearRect(150,50,750,750);
 context.beginPath();
 context.fillStyle="#0000ff";
 context.arc(x,y,10,20,Math.PI*2,true);
  context.closePath();
  lineColor = document.getElementById('lineColor').value;
  lineWidth = document.getElementById('lineWidth').value;
    speed = document.getElementById('speedx').value;
        setInterval(draw,speed); 

        if (lineWidth)
        {
            context.lineWidth=lineWidth;
        }
        if (lineColor)
        {
            context.strokeStyle=lineColor;
            context.stroke();
        }
}

HTML:

      Ball Width: <input type="text" id="lineWidth"></input>
Ball Color: <input type="text" id="lineColor"></input>
Ball Speed X:<input type="text" id="speedx"></input>

1 个答案:

答案 0 :(得分:1)

好像你设置了一千个计时器而没有停止前面的计时器,因为你使用的是setInterval而不是setTimeout。这通常在每次调用绘图时创建一个新的计时器,并且每次每个计时器都有一个间隔时调用绘制。我认为这使得它始终以最快的速度运行。

此外,从此代码中不清楚x和y的设置位置。

此外,每次迭代找到上下文并非最佳性能。