javascript - 如何在 Three.js 中随时间添加/删除对象

标签 javascript time timer three.js

我想添加和删除带有句点的对象。例如,我有一个包含 50 个对象的数组。我想添加带有句点的对象,同时删除前一个对象,就像创建对象流一样。首先我尝试使用 setTimeout 和 setInterval 函数,但它们不起作用(在渲染函数内部和外部)。然后我尝试了这个;

function render(){
    controls.update(clock.getDelta());
    renderer.render( scene, camera);
    i = i+1;
    if (i % 2 == 0){
        if (i % 300 == 0){
            remove(lights);
        }
        else
        {   scene.add(lights[(i/2)]);
        }
    }
}

它可以工作,但它不会开始添加第一个对象的进程。我还尝试了 getElapsedtime() 而不是迭代 i,但这次它只添加第一个对象。我可以使用更有效的时间控制方法吗?

非常感谢。

最佳答案

像这样的东西会起作用:

var spotOn = true;
window.setInterval(function(){spot()},milliseconds);

function spot() {
    var i;
    if(spotOn) {
        for(i = 0; i < lights.length; ++i) {
            scene.add(lights[i]);
        }
    } else {
        for(i = 0; i < lights.length; ++i) {
            scene.remove(lights[i]);
        }
    }
    spotOn = !spotOn;
}

function render(){
    renderer.render( scene, camera);
}

关于javascript - 如何在 Three.js 中随时间添加/删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21565105/

相关文章:

Java程序签到定时器

javascript - 创建 youtube 流 HTML5 的音频频谱

javascript - 单击即可添加 2 个动态字段

javascript - 使用 jQuery 提交按钮的替代方案

python - 将毫秒转换为小时、分钟和秒 python

java.text.ParseException : Unparseable date: "20:01:00.000Z"

javascript - PHP 为所有连接的客户端提供相同的随机数

javascript - 如何使用 namespace 导入而不导入所有内容?

javascript - 如何使用 JavaScript 创建时间戳

JavaScript 计时器无法正常运行