如何在处理中延迟/禁用鼠标单击

时间:2015-11-29 23:44:30

标签: 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()函数来做到这一点,但是这个函数返回任何X秒是电脑的时钟,然后一旦它击中59就从0重新开始。我无法使用这可以创造任何类型的延迟。

1 个答案:

答案 0 :(得分:1)

不要使用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