使用计时器在Processing中显示和隐藏对象

时间:2015-12-04 15:03:05

标签: timer processing show-hide

我是初学者计划并尝试使用Processing创建一个“Simon”记忆游戏。我目前正在使用计时器每秒显示一个新对象。但是,我无法确定如何在对象显示后立即消失(例如,在它出现后半秒钟)。我已经尝试创建第二个计时器对象,在一定时间后重绘背景,但它只是不起作用。非常感谢任何帮助!!

int j = 0;
void draw() {
if (displayTimer.isFinished()){
  hideTimer.start();
  if(hideTimer.isFinished()){
    drawBackground();
  }
      if (nomisSequence[j] == color(255, 0, 0)) {
        drawBackground();
        button1.display();
      }
      else if (nomisSequence[j] == color(0, 255, 0)) {
        drawBackground();
        button2.display();
      }
      else if (nomisSequence[j] == color(0, 0, 255)) {
        drawBackground();  
        button3.display();
        } 
      else if (nomisSequence[j] == color(255, 255, 0)) {
        drawBackground();
        button4.display();
      }

      if(hideTimer.isFinished()){
        drawBackground();
      }

      j++;
      displayTimer.start();
      hideTimer.start();
  }
}

1 个答案:

答案 0 :(得分:0)

我不知道您正在使用的timer个对象,但您不需要它们。处理有一个方便的millis()功能,你可以使用。

只记录您想要的任何事件的开始时间,然后检查该开始时间加上持续时间是否小于当前时间。

这样的事情:

int startMillis;
int duration = 1000;

void draw() {
  background(0);
  if (mousePressed) {
    startMillis = millis();
  }

  if (millis() < startMillis + duration) {
    ellipse(mouseX, mouseY, 10, 10);
  }
}