2016-07-07 6 views
0

私はオブジェクトの配列を持つゲームを作成しています。配列の1つはすべてのミサイルオブジェクトを保持しています。このアレイは、壁(または選手)に当たってミサイルを頻繁に取り除く必要がありますが、乱雑なコードを取得することなくアレイからオブジェクトを取り除く方法はないようです。好ましくは、オブジェクトの1つの内部からオブジェクトを削除する方法、たとえばmissiles.splice(this,1)が必要です。Javascript関数からオブジェクトを削除する

Missiles.prototype.Draw = function() { 
    if (this.x >= -200) { 
     ctx.beginPath(); 
     ctx.fillStyle = "Black"; 
     ctx.rect(this.x,this.y,this.width,this.height); 
     ctx.stroke(); 
     ctx.fill(); 
    } else { 
     missileCount.splice(this,1); 
     console.log('removed a missile') 
    } 
}; 

を次のようにコードの一部の例がある。しかし、私はこれを使用するとき、私は

を消えて、画面上のランダムなミサイルを持っている私は(それに使用することを私のコードとペーストビンを持っています以下のリンクを参考にしてください) http://pastebin.com/f5S8zhJg

ゲームマップは非常に興味深いものです。

+0

あなたは 'splice'方法を確認しましたか? – FDavidov

+0

これは私のコードで使用するものですが、特定の行はmissileCount.splice(this、1)です。これは正しいです? –

+0

はい、そうだと思います。 100%確実であることを文書で確認してください。 – FDavidov

答えて

0

missileCountは配列です。

spliceは2の整数をとります。

はMissilesのインスタンスです。

あなたのコードをウェーディングがなければ、私はあなたがしたいと思う:

missleCount.splice(missleCount.indexOf(this),1); 
関連する問題