处理rect语句留下其他黑色矩形的踪迹

时间:2014-10-10 01:08:56

标签: processing

当尝试从框架中来回制作一个矩形时,它会留下一个覆盖背景的黑色矩形。

这是我的代码:

float x = 0;
float y = 0;
float speed = 1;

void setup() {
  size(500,500);
  background(255);
}

void draw() {
  move();
  display();
}

void move() {
  x = x + speed;
  if (x > width) {
    x = 0;
  }
}

void display() {
  rect(x,y,30,10);
}  

现在我讨厌它,因为它几乎与示例中的完全相同。 编辑:我不想要它留下的黑色。现在做一些研究..

2 个答案:

答案 0 :(得分:2)

为了避免拖尾三角形,您需要在重绘三角形之前重新绘制背景,否则它只会在顶部绘制另一个三角形。

你应该添加;

background(255);

draw()move()之前的display()方法。

希望这有帮助。

答案 1 :(得分:0)

在处理中,void setup()仅在草图启动时调用一次。这就是您在其中定义画布大小的原因。 (因为画布方面没有改变)

另一方面,void draw()一直在运行。因此,任何在程序运行时发生变化的活动内容都需要在其中。

float x = 0;
float y = 0;
float speed = 1;

void setup() {
  size(500,500);

}

void draw() {
  background(255);
  move();
  display();
}

void move() {
  x = x + speed;
  if (x > width) {
    x = 0;
  }
}

void display() {
  rect(x,y,30,10);
}