Java/处理鼠标压入循环不工作
所以我用Java+处理制作了一个简单的游戏,在draw()中有按钮和循环。显然,如果有循环,PApplet函数mousePressed()就不能持续工作,因此我尝试在循环期间检查我自己的checkmouse()函数。然而,它仍然不起作用。我怎样才能在运行一个带有while循环的游戏的同时不断检查鼠标是否被按下Java/处理鼠标压入循环不工作,java,processing,event-dispatch-thread,Java,Processing,Event Dispatch Thread,所以我用Java+处理制作了一个简单的游戏,在draw()中有按钮和循环。显然,如果有循环,PApplet函数mousePressed()就不能持续工作,因此我尝试在循环期间检查我自己的checkmouse()函数。然而,它仍然不起作用。我怎样才能在运行一个带有while循环的游戏的同时不断检查鼠标是否被按下 //draw() func public void draw() { for (int i = 0; i < 10000; i++) { //to simulate
//draw() func
public void draw() {
for (int i = 0; i < 10000; i++) { //to simulate a while loop
//do something, like run some other functions that create the buttons
checkmouse();
}
}
//checkmouse function
public void checkmouse() {
if (mousePressed) {
System.out.println("x");
}
}
在调用draw()
函数之间,事件变量(mousePressed
,keyPressed
等)将更新
换句话说:mousePressed
函数在调用draw()
函数时将永不改变。如果希望更新事件变量,则需要完成draw()
函数,然后再次调用该函数
在幕后,这是因为处理是单线程的。(这是出于设计,因为多线程UI程序是一场噩梦。)
退一步说,您可能不希望在draw()函数中包含长循环。利用处理实现的60 FPS循环。1)不要阻塞EDT(事件调度线程)。发生这种情况时,GUI将“冻结”。有关详细信息和修复方法,请参阅。2) 为了更快地获得更好的帮助,请添加或。
boolean esc = false;
while (!esc) {
if (mousePressed) {
System.out.println("x");
esc = true;
}
}