2017-11-09 18 views
0

重力とソートのシミュレーションをしようとしています。私はちょうど今始まっていますが、私はすでに答えが見つからないような問題に遭遇しました。私はそれを作ろうとしているので、粒子は他の変数を使って重力変数によって指数関数的に加速します。しかし、このコードを実行すると、particle [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); 
+1

初期値を 'parVelo'に設定していません – James

+0

うわー...基本的なコーディングテクニック。私はそれを本当に見落としました。今私はちょっと恥ずかしい気がする。 – Bestlogo56

答えて

0

あなたはgravityの初期値を設定すると同時に、おそらくparVelo = 0;を設定する必要があります。

関連する問題