如何delay/disable鼠标点击处理

How to delay/disable mouse click in processing

我正在制作一个简单的游戏,用户必须点击一个向屏幕底部移动的球。用户必须在球到达屏幕底部之前点击它,当用户点击球时,球会向上移动一个预设值。

我遇到的问题是用户只需按住鼠标左键,球就会不断向上移动。

这是我的绘图函数,它会在按下鼠标后调用另一个函数。

void draw(){
  background(bg);
  update_ball();
  if (mousePressed){
    mouse_hit();
  }

}

这是mouse_hit函数

void mouse_hit(){

    if (mouseX <= (B1.x_loc+B1.size) && mouseX >= (B1.x_loc-B1.size) &&
    mouseY <= (B1.y_loc+B1.size) && mouseY >= (B1.y_loc-B1.size) ){


      B1.y_loc+=-25;
   //    file.play();
    }
  }

我想要的是设置延迟,以便用户在再次按下鼠标之前必须等待 X 秒。

我试图通过尝试在处理中使用 Second() 函数来做到这一点,但是这个函数 returns 无论 X 秒是 pc 的时钟,然后一旦它命中 59.i 无法使用它来创建任何类型的延迟。

不要使用 mousePressed 变量。使用mousePressed()函数:

void draw(){
  background(bg);
  update_ball();
}

void mousePressed(){

    if (mouseX <= (B1.x_loc+B1.size) && mouseX >= (B1.x_loc-B1.size) &&
    mouseY <= (B1.y_loc+B1.size) && mouseY >= (B1.y_loc-B1.size) ){

      B1.y_loc+=-25;
   //    file.play();
    }
}

只要按下鼠标,mousePressed 变量就会为真。 mousePressed() 函数每次点击 仅调用一次 。您还可以使用 mouseClicked()mouseReleased() 函数来获取有关单击事件的更多信息。

有关这些功能的更多信息,请参阅 the Processing reference