无法渲染球的路径

问题描述 投票:0回答:1

我正在尝试创建重力模拟。我想画一条线来追踪球的路径,但由于

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);
}

processing
1个回答
0
投票

以下代码使用 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);
  }
}

© www.soinside.com 2019 - 2024. All rights reserved.