我正在尝试模拟重力和排序。我刚刚开始,但我已经遇到了一个问题,我似乎无法找到答案。我试图通过使用另一个变量的重力变量使我的粒子以指数方式加速。但是当我运行这段代码时,它会使粒子[0] .y = NaN。非常感谢帮助。
var c = document.getElementById("canvas");
var ctx = c.getContext("2d");
var gravity, objectDensity, force, parVelo;
gravity = 9.8;
function Object(mass, x, y, w, h) {
this.m = mass;
this.x = x;
this.y = y;
this.w = w;
this.h = h;
};
var particle = [];
particle.push(new Object(10,10,10,20,20));
function draw() {
parVelo += gravity;
ctx.clearRect(0,0,c.width,c.height);
for(let i = 0, len = particle.length; i < len; i++) {
ctx.fillRect(particle[i].x,particle[i].y,particle[i].w,particle[i].h)
particle[i].y += parVelo;
}
}
setInterval(draw,1000);
答案 0 :(得分:0)
您需要在设置parVelo = 0;
的初始值的同时设置gravity
。