[处理/ Java]可见性/分层问题

时间:2011-01-15 21:45:03

标签: java processing

我正在处理一个小草图,我正在使用时间函数制作一个“时钟”,并根据毫秒,秒和分钟在画布上绘制椭圆。我正在使用for循环绘制所有的省略号,每个for循环都在自己的方法中。我在draw函数中调用了这些方法。但是由于某些原因,只绘制了第一个被调用的方法,理想情况下我想让它们全部被可视化渲染。

//setup program
void setup() {
  size(800, 600);
  frameRate(30);
  background(#eeeeee);
  smooth();
}

void draw(){
  milliParticles();
  secParticles();  
  minParticles();
}

//time based particles
void milliParticles(){
  for(int i = int(millis()); i >= 0; i++) {
      ellipse(random(800), random(600), 5, 5 );
      fill(255);    
  }
}

void secParticles() {
  for(int i = int(second()); i >= 0; i++) {
      fill(0);    
      ellipse(random(800), random(600), 10, 10 );
  }
}

void minParticles(){
  for(int i = int(minute()); i >= 0; i++) {
      fill(50);
      ellipse(random(800), random(600), 20, 20 );
  }
}

1 个答案:

答案 0 :(得分:2)

你的第一个方法是唯一一个被执行的方法,因为为了你的for循环停止必须为false的条件总是为真(如果你每次循环都加1,我将始终是> = 0)

我想你想修改你的for循环:

for(int i = int(second()); i >= 0; i--) {

这样,我最初将是0-59,并且将减小直到它为-1,此时i> = 0将为假。然后执行将退出for循环并传递给下一个方法。

我认为这是你的初衷,除非你想让每个方法同时无限期地运行(在这种情况下你应该使用线程)。