1

で煙をシミュレートしようとしていcanvasます。新しい煙パフを作成してパフ配列にプッシュしたいのですが、"Uncaught TypeError: Type error"エラーが発生し続けます。
私が欠けているものを知っている人はいますか?

var puffs = [];

this.tick = function() {
    var puffLength = puffs.length;
    if ( addPuffs && ( puffLength < maxParticles )) {
        puffs.push({ //THIS ONE IT WHAT GIVES ME THE ERROR
            posX: oPoint.x,
            posY: oPoint.y,
            scale: .1,
            age: 0
        });
    }

    for(var i = 0; i < puffLength; i++) {

        var currentPuff = puffs[i];

        if(currentPuff.age == maxLife) {
            puffs.splice(i, 1);
        } else {
            currentPuff.posX += windX,
            currentPuff.posY += windY,
            currentPuff.scale += growingSpeed,
            currentPuff.age++;
        }

    }

    this.render();

}
4

1 に答える 1

1

提供されたフィドルでaddPuffsは、定義されていません。ビジネス ロジックに従って、この変数を定義する必要があります。またoPoint.x、 とoPoint.yは定義されていません。これらもビジネス ロジックに従って初期化する必要があります。

var oPoint = {x:1, y:2}; //declare according to logic
var addPuffs = true; //some logic here
if ( addPuffs && ( puffLength < maxParticles )) {
    puffs.push({ //THIS ONE IT WHAT GIVES ME THE ERROR
        posX: oPoint.x,
        posY: oPoint.y,
        scale: .1,
        age: 0
    });
}

また、drawImage()oncanvasを使用する場合、最初の引数DOMは画像へのパスではなく、要素でなければならないと思います。

試す:

  var img = new Image();
  img.src = "/static/img/particle.png";
  //Omitted code
  ctx.drawImage(img,80,80,1,1);
于 2013-09-26T08:49:15.863 に答える