我遇到了一个问题,我真的不知道如何用 JavaScript 编码。问题是我希望能够创建许多添加到数组中的对象。当创建对象以添加到此数组时,它们将具有“生命周期”。当这个生命周期结束时,这个对象应该从数组中删除。
我在这里尝试构建的是一个粒子系统,在该粒子系统中,在所讨论的粒子寿命到期后,粒子将从被渲染中消失。
任何对此有好主意或例子的人?
我曾考虑过使用setTimeout
,setInterval
但clearInterval
不确定这将如何最有效。
我遇到了一个问题,我真的不知道如何用 JavaScript 编码。问题是我希望能够创建许多添加到数组中的对象。当创建对象以添加到此数组时,它们将具有“生命周期”。当这个生命周期结束时,这个对象应该从数组中删除。
我在这里尝试构建的是一个粒子系统,在该粒子系统中,在所讨论的粒子寿命到期后,粒子将从被渲染中消失。
任何对此有好主意或例子的人?
我曾考虑过使用setTimeout
,setInterval
但clearInterval
不确定这将如何最有效。
像这样的东西?
菲利克斯克林更新:
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);
您可以使用micha的代码示例。在每次调用“下一个”函数时,您都可以更新粒子的状态(位置、速度等)。您还可以跟踪粒子的创建时间,并在每次“下一次”调用时检查当前时间减去创建时间是否超过某个常数,如果超过则删除粒子。根据所需的动画质量,您可能希望减少超时之间的时间,例如setTimeout(next, 25);
祝你好运:)