Javascript 使用canvas在JS中模拟重力

Javascript 使用canvas在JS中模拟重力,javascript,simulation,Javascript,Simulation,所以,我试图创建一些圆圈,然后我想让它们掉下来。下面是代码和演示:FireBug告诉我,没有为未定义的对象定义“move”方法,所以当我想要创建OBECT数组时,一定是出了问题。纠正我的错误,并考虑到我刚刚开始学习JS中的面向对象编程。for(I=0;I不是创建多个事件,而是创建一个事件并在其中循环: for (i = 0;i<bubble.length - 1; ++i) { console.log(bubble[i].y) setInterval(function(){

所以,我试图创建一些圆圈,然后我想让它们掉下来。下面是代码和演示:FireBug告诉我,没有为未定义的对象定义“move”方法,所以当我想要创建OBECT数组时,一定是出了问题。纠正我的错误,并考虑到我刚刚开始学习JS中的面向对象编程。

for(I=0;I不是创建多个事件,而是创建一个事件并在其中循环:

for (i = 0;i<bubble.length - 1; ++i)
{
    console.log(bubble[i].y)
    setInterval(function(){
        bubble[i].move();
        bubble[i].redraw();
    },32);
}
  setInterval(function(){
    ctx.clearRect(0,0,1000,1000);  //Clear the canvas here
    for (i = 0;i<bubble.length;++i)
    {
      bubble[i].move();
      bubble[i].redraw();
    }
  },32);
setInterval(函数(){
ctx.clearRect(0,010001000);//在此处清除画布

对于(i=0;i我已经对此进行了详细讨论,以解决循环问题,清除画布矩形似乎也存在问题,该矩形会造成一些干扰

函数move(){this.y+=4;}
我为您的体验提供了一个示例代码。祝您愉快!真棒!+1为一个真棒的演示/示例!看起来很棒!非常感谢这个演示,它将对我获得更多的知识非常有用。这个3d虚拟世界在js中展示了一个很好的重力示例:这产生了同样的问题小于符号说明了这一点。I++将是pr可操作,但从外观上看,真正的问题是范围。它仍然不能解决我的问题,因为我希望每个圆同时落下。这几乎可以工作,但会破坏除一个圆以外的所有圆。一个圆正确落下。@GiovanniB所有圆都落下了……但在重画时画布被清除了。因此它清除了画布,drew circle 1,清除画布,画圆圈2…清除画布,画圆圈10。然后等待32毫秒,直到一切重新开始。@mic4ael没问题。如果你投票通过这个答案并接受它,那就太好了。