Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript P5.js对象不留下痕迹_Javascript_P5.js - Fatal编程技术网

Javascript P5.js对象不留下痕迹

Javascript P5.js对象不留下痕迹,javascript,p5.js,Javascript,P5.js,我有一个项目,我想做一个螺旋效果,两个椭圆互相旋转,它们留下一条不断向下然后消失的轨迹。现在的问题是,我无法找到线索。我跟随了编码火车的一个教程做了一个追踪,虽然它对他有效,但对我无效。我和他做的一件不同的事是,他用a类球,而我不是 我的追踪代码是这样的。它接收我制作的一个名为history的数组,其中包含一个包含x和y位置的2d向量,它应该每帧复制一个椭圆,但它只是创建一个新椭圆并擦除最后一个椭圆 function makeTrail(){ history.push(pos1);

我有一个项目,我想做一个螺旋效果,两个椭圆互相旋转,它们留下一条不断向下然后消失的轨迹。现在的问题是,我无法找到线索。我跟随了编码火车的一个教程做了一个追踪,虽然它对他有效,但对我无效。我和他做的一件不同的事是,他用a类球,而我不是

我的追踪代码是这样的。它接收我制作的一个名为history的数组,其中包含一个包含x和y位置的2d向量,它应该每帧复制一个椭圆,但它只是创建一个新椭圆并擦除最后一个椭圆

function makeTrail(){
    history.push(pos1);
    for (var i = 0; i < history.length; i++){
        let p = history[i];
        ellipse(p.x, p.y, 8, 8);
    }
 }

问题是您正在将
pos1
推入
history
,而此时您应该按下
pos1.copy()
。当你推向量本身时,列表中的值会随着
pos1

的值而改变,我看不出有什么问题。你能发布你的全部代码吗?@jstl当然,这里是github链接:
function draw(){
    pos1.y += -1;
    pos2.y += -1;
    let rs = 30/*random(10, 30)*/;
    fill('#f42069');
    ellipse(pos1.x, pos1.y, rs, rs);
    moveBall();
    fill('#b4da22');
    ellipse(pos2.x, pos2.y, rs, rs);
    moveBall2();
    makeTrail();
}