我遇到了一个我不知道如何在JavaScript中编码的问题。事情是我希望能够创建添加到Array的很多对象。当创建对象以添加到此数组时,它们将具有“生命周期”。当此生命周期用完时,应从阵列中删除此对象。
我试图在这里构建的是一个粒子系统,在所讨论的粒子寿命到期之后,粒子将从渲染中消失。
任何对此有好主意或榜样的人?
我考虑过使用setTimeout
,setInterval
和clearInterval
,但不确定这最有效。
答案 0 :(得分:1)
类似于this?
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);
答案 1 :(得分:1)
您可以使用 micha 的代码示例。每次拨打&#34; next&#34;功能你可以更新粒子的状态(位置,速度等)。您还可以跟踪创建粒子的时间以及每个&#34; next&#34;调用检查当前时间减去创建时间是否超过某个常数,如果是,则删除粒子。根据所需的动画质量,您可能希望缩短超时之间的时间,例如: setTimeout(next, 25);
祝你好运:)