我正在尝试创建重力模拟。我想画一条线来追踪球的路径,但由于
background(0);
的画布清晰,我无法做到这一点。
float x = 10;
float y = 50;
float speedX = 2;
float speedY = 6;
float gravity = 0.98;
float red = 255;
float green = 0;
float blue = 0;
void setup() {
size(640, 360);
}
void draw() {
background(0);
noStroke();
fill(red, green, blue);
if (mousePressed == false) {
speedY += gravity;
x += speedX;
y += speedY;
}
if (x >= width || x <= 0) {
speedX = -speedX;
;
}
if (y >= height || y <= 0) {
speedY = -speedY;
}
stroke(255, 0, 0);
line(x, y, 200, 200);
circle(x, y, 50);
}
以下代码使用 ArrayList 来保存球的 x 和 y 值,以便可以创建路径:
float speedY = 6;
float gravity = 0.98;
float red = 255;
float green = 0;
float blue = 0;
ArrayList<PVector> path = new ArrayList<PVector>();
void setup() {
size(640, 660);
}
void draw() {
background(0);
noStroke();
fill(red, green, blue);
if (mousePressed == false) {
speedY += gravity;
x += speedX;
y += speedY;
}
if (x >= width || x <= 0) {
speedX = -speedX;
}
if (y >= height || y <= 0) {
speedY = -speedY;
}
path.add(new PVector(x, y));
stroke(255, 0, 0);
line(x, y, 200, 200);
circle(x, y, 50);
// Draw the path
for (int i = 0; i < path.size(); i++) {
PVector p = path.get(i);
line(p.x, p.y, 200, 200);
}
}