我正在制作一个简单的游戏,用户必须点击向屏幕底部移动的球。用户必须在击中屏幕底部之前点击球,当用户点击球时,球向上移动预设值。
我遇到的问题是,用户只需按住鼠标左键,球就会不断向上移动。
这是我的绘图功能,一旦按下鼠标就调用另一个功能。
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重新开始。我无法使用这可以创造任何类型的延迟。
答案 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。