P5.js 物体没有留下痕迹
P5.js object not leaving a trail
我有一个项目,我试图在其中制作螺旋效果,其中两个椭圆相互旋转,并且它们留下一条轨迹,该轨迹不断向下移动,然后消失。现在的问题是,我无法显示踪迹。我按照编码火车的教程进行了追踪,虽然它对他有用,但对我却不起作用。我做的与他不同的一件事是他使用 类 作为他的球,而我没有。
我的trail代码是这样的。它接收一个我创建的名为 history 的数组,其中包含一个包含 x 和 y 位置的二维向量,它应该在每一帧制作一个椭圆的副本,但它只是制作一个新的椭圆并擦除最后一个。
function makeTrail(){
history.push(pos1);
for (var i = 0; i < history.length; i++){
let p = history[i];
ellipse(p.x, p.y, 8, 8);
}
}
如果有帮助,这是我的绘图功能。其中大部分只是我希望在何处绘制球的代码。 MoveBall
函数只是告诉程序如何处理球。
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();
}
问题是您将 pos1
推入 history
,而您应该将 pos1.copy()
推入。当你推送向量本身时,列表中的值随着 pos1
.
的值而变化
我有一个项目,我试图在其中制作螺旋效果,其中两个椭圆相互旋转,并且它们留下一条轨迹,该轨迹不断向下移动,然后消失。现在的问题是,我无法显示踪迹。我按照编码火车的教程进行了追踪,虽然它对他有用,但对我却不起作用。我做的与他不同的一件事是他使用 类 作为他的球,而我没有。
我的trail代码是这样的。它接收一个我创建的名为 history 的数组,其中包含一个包含 x 和 y 位置的二维向量,它应该在每一帧制作一个椭圆的副本,但它只是制作一个新的椭圆并擦除最后一个。
function makeTrail(){
history.push(pos1);
for (var i = 0; i < history.length; i++){
let p = history[i];
ellipse(p.x, p.y, 8, 8);
}
}
如果有帮助,这是我的绘图功能。其中大部分只是我希望在何处绘制球的代码。 MoveBall
函数只是告诉程序如何处理球。
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();
}
问题是您将 pos1
推入 history
,而您应该将 pos1.copy()
推入。当你推送向量本身时,列表中的值随着 pos1
.