使用画布在JS中很少模拟重力
Little simulation of gravity in JS using canvas
所以,我试图创建几个圆圈,然后我希望它们掉下来。这是代码和演示:演示 FireBug 告诉我,"move"方法没有为未定义的对象定义,所以当我想创建一个对象数组时,一定有问题。纠正我的错误,并考虑到我刚刚开始学习JS中的面向对象编程。
与其创建多个事件,不如创建一个事件并在其中循环:
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);
问题是范围问题。您编写它的方式i
执行的所有事件中的值为 10。
工作小提琴:http://jsfiddle.net/some/fGChQ/16/
您的另一个问题是您在重绘中清除画布...对于每个圆圈。
我已经对此进行了分叉来解决循环问题,似乎也存在清除画布矩形的问题,这引起了一些干扰
for (i = 0;i<bubble.length - 1; ++i)
{
console.log(bubble[i].y)
setInterval(function(){
bubble[i].move();
bubble[i].redraw();
},32);
}
bubble.length 是 10,数组是索引 0-9。 bubble[10] 是未定义的,所以你不能调用方法 move 在它上面。
相关文章:
- 在坐标上模拟点击坐标js/jQuery
- sails.js中的模拟/存根全局变量
- 如何用mocha和rewire模拟node.js单元测试中的Q方法
- 无法模拟在 node.js 中使用事件发射器刺激的类中的函数
- 使用画布在JS中很少模拟重力
- 使用Prototype-Simulate.js模拟点击和更改
- 使用Mocha.js进行Javascript测试:如何模拟Mocha中的回调
- Angular js单元测试模拟文档
- React js - 如何在测试组件时模拟上下文
- 用西农.js的模拟方法
- JS框架,用于在Canvas上创建可视化模拟
- 如何在 Node 中使用 Passport.js 模拟其他用户
- 如何模拟具有绝对路径的请求以进行JS测试
- 尝试在node.js上模拟function.bind()
- 处理.js:p.keyRelease不是一个函数/模拟keyRelease
- DC.js模拟点击图表并触发过滤器
- 模拟.js第一个程序:屏幕上没有绘制任何内容
- 资源模拟.js无法解析正确的 URL
- 如何模拟Js中的DOM对象
- 模拟js上的点击