在处理 3 中暂停程序的执行

pausing the execution of a program in processing 3

我正尝试在处理过程中创建一个暂停按钮,如下所示:

boolean paused = false;  
void mouseClicked(){
  if(!paused)
    stop();
  else
    start();
  paused = !paused;
}

它停止了程序,但当我再次按下时没有启动它。这里出了什么问题?提前致谢。

如果没有看到 MCVE,很难为您提供帮助。具体来说,我们不知道您的 start()stop() 函数在做什么。

但总的来说,我会说你走在正确的轨道上。您将使用 paused 变量来跟踪应用程序是否已暂停,然后在 paused 为假时仅 运行 您的程序。这是骨架:

boolean paused = false;

void draw(){
   if(paused){
      //draw paused screen
   }
   else{
      //draw your program
   }
}

void mouseClicked(){
   paused = !paused;
}

您也可以考虑使用 noLoop()loop() 函数。

boolean paused = false;

void setup() {
  size (100, 100);
}

void draw() {
  background(0);
  text(str(frameCount), 5, 15);
}

void mouseClicked() { // click event, outside draw()!
  paused = !paused;
  if (paused) {
    noLoop(); // stops the draw() loop
  } else {
    loop(); // restarts the draw() loop
  }
}