【问题标题】:Processing rect statement leaving trail of other black rectangles处理 rect 语句,留下其他黑色矩形的痕迹
【发布时间】:2014-10-10 01:08:55
【问题描述】:

当试图让一个矩形从框架中来回移动时,它会留下一个覆盖背景的黑色矩形。

这是我的代码:

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

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

【问题讨论】:

  • 那么你的问题是什么?你想要什么样的行为?
  • 我不想要它留下的黑色矩形

标签: processing


【解决方案1】:

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

你应该添加;

background(255);

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

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    在处理中 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);
    }  
    

    【讨论】:

      猜你喜欢
      • 2011-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-07
      • 1970-01-01
      • 2011-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多