obj没有变数

时间:2017-05-12 10:17:32

标签: object processing

我有一个处理程序,应该显示100个环,每个环比前一个大一点。当我运行我的程序时,它会显示1个最大的铃声。我这个案例是从中间100px。

这是我的代码:

Car[] myCar = new Car[100];
void setup(){
  size(500,500);
  noFill();
  for (int i = 0; i != myCar.length; i=i+1) {
    myCar[i] = new Car(i);
  }
}
void draw(){
  for (int i = 0; i != myCar.length; i=i+1) {
    myCar[i].drive();
    myCar[i].display();
  }
}
class Car{
  int c;
  Car(int c_){
   c = c_;
  }
  void drive(){
    c = c + 2;
  }
  void display(){
    background(255);
    noFill();
    stroke(10);
    ellipseMode(CENTER);
    ellipse(width/2,height/2,1+c,1+c);
  }
}

我的问题是:为什么只显示最大的戒指?

可能是那个

for (int i = 0; i != myCar.length; i=i+1) {
  myCar[i] = new Car(i);
}

以某种方式不会将变量“i”赋给我的构造函数。 或者我只是愚蠢我不知道。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您没有看到它们,因为当您致电myCar[i].display()时,该功能会清除屏幕上已有的所有内容并设置background(255),然后继续绘制一个响铃。这种情况一直在发生,你只能看到每一帧越来越大的一个戒指。

只需从background(255)功能移除display(),然后将其设为draw()的第一行即可获得所需结果。

并非总是如此,但在大多数情况下,background()setup()都会调用draw(),因为它的作用是用颜色填充画布的每个像素,考虑一下。 / p>