1

JavaScript で実際にコーディングする方法がわからない問題に遭遇しました。問題は、配列に追加された多くのオブジェクトを作成できるようにしたいということです。この配列に追加するためにオブジェクトが作成されると、オブジェクトには「ライフタイム」があります。この有効期限が切れたら、このオブジェクトを配列から削除する必要があります。

ここで構築しようとしているのは、問題のパーティクルの有効期限が切れた後、パーティクルがレンダリングされなくなるパーティクル システムです。

これについて良いアイデアや例を持っている人はいますか?

を使用することを考えましたがsetTimeout、これがどのように最も効果的かはわかりません。setIntervalclearInterval

4

2 に答える 2

1

このようなもの?

Felix Klingのアップデート:

var a = [], next = function() {
    a = a.slice(0,-1);
    document.body.innerHTML += a.length + "<br />";
    if (a.length != 0)
        setTimeout(next, 100);
};
for (var i = 0; i < 100; i++) {
    a.push({hi: 1});
}
setTimeout(next, 100);​
于 2012-02-20T14:12:40.220 に答える
1

michaのコードサンプルを使用できます。「次の」関数を呼び出すたびに、パーティクルの状態(位置、速度など)を更新できます。また、パーティクルの作成時刻を追跡し、「次の」呼び出しごとに、現在の時刻から作成時刻を引いた値が特定の定数を超えているかどうかを確認し、超えている場合はパーティクルを削除できます。アニメーションの必要な品質によっては、タイムアウト間の時間を短縮したい場合があります。たとえば、setTimeout(next, 25); 幸運を祈ります:)

于 2012-02-20T16:42:09.820 に答える