gpt4 book ai didi

javascript改变 Canvas 中球的速度

转载 作者:行者123 更新时间:2023-11-28 02:46:06 25 4
gpt4 key购买 nike

我有一个球在 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>

最佳答案

看起来好像您正在设置一千个计时器,而没有停止前面的计时器,因为您使用的是 setInterval 而不是 setTimeout。这基本上会在每次调用draw时创建一个新的计时器,并且每次每个计时器有一个间隔时都会调用draw。我认为这使它始终以尽可能最快的速度运行。

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

此外,在每次迭代中查找上下文并不是最佳性能。

关于javascript改变 Canvas 中球的速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11850936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com