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