【问题标题】:How to delay/disable mouse click in processing如何在处理中延迟/禁用鼠标单击
【发布时间】:2015-11-29 23:44:29
【问题描述】:

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

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

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

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 秒是 pc 的时钟,然后一旦达到 59,它就会从 0 重新启动。我无法使用这会造成任何类型的延迟。

【问题讨论】:

  • 凯文在这些情况下你可以使用&lt;!-- language-all: lang-java --&gt;
  • @v.k.刚看到这个。感谢您的提示!

标签: processing


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    相关资源
    最近更新 更多