Java 处理:如何使函数在运行下一行之前等待?

Java 处理:如何使函数在运行下一行之前等待?,java,processing,Java,Processing,我正在尝试创建一个程序,向用户显示注释,几秒钟后,他们通过蜂鸣器得到触觉反馈,他们需要尽快点击该注释。蜂鸣器通过arduino连接。此时,当便笺首次出现在屏幕上时,蜂鸣器发出蜂鸣声。我正试图找到一种方法,使蜂鸣器在几毫秒后工作,以接近他们实际需要敲击音符的时间。使用带有毫秒()或延迟()的计时器不会像我需要的那样工作 void readNotes(){ int i = notesLineIndex; if(notesLineIndex < notes.length) {

我正在尝试创建一个程序,向用户显示注释,几秒钟后,他们通过蜂鸣器得到触觉反馈,他们需要尽快点击该注释。蜂鸣器通过arduino连接。此时,当便笺首次出现在屏幕上时,蜂鸣器发出蜂鸣声。我正试图找到一种方法,使蜂鸣器在几毫秒后工作,以接近他们实际需要敲击音符的时间。使用带有毫秒()或延迟()的计时器不会像我需要的那样工作

void readNotes(){
   int i = notesLineIndex;
   if(notesLineIndex < notes.length) {
      notesLineIndex++;
    }
   else return;
   notesLine= notes[i];    
   String[] list = split(notesLine, ',');

   if (Integer.parseInt(list[0]) == 1) el1 = 0;
   if (Integer.parseInt(list[1]) == 1) el2 = 0;
   if (Integer.parseInt(list[2]) == 1) el3 = 0;

   //add delay 
   notesBuzz= notes[i];    
   myPort.write('a'); //create a starting point for array
   myPort.write(list[0]);
   myPort.write(list[1]);
   myPort.write(list[2]);
 }
void readNotes(){
int i=注释索引;
if(注释索引<注释长度){
notesLineIndex++;
}
否则返回;
注释行=注释[i];
String[]list=split(notesLine,,);
如果(Integer.parseInt(list[0])==1)el1=0;
如果(Integer.parseInt(list[1])==1)el2=0;
如果(Integer.parseInt(list[2])==1)el3=0;
//增加延迟
notesBuzz=附注[i];
myPort.write('a');//为数组创建起点
myPort.write(列表[0]);
myPort.write(列表[1]);
myPort.write(列表[2]);
}
您可以使用该功能

delay(1000) //wait for 1 second
您有两种选择:

注释位置:如果注释在屏幕上水平移动,则可以根据注释的x位置执行触发器。可能是最简单的选择。如果垂直,则使用y位置

Millis():当注释首次出现时,将该注释的Millis()存储在变量中。然后在每一帧上,检查存储值和当前毫秒()之间的差值是否大于所需的延迟时间。如果是,启动蜂鸣器


关于delay()函数的注意事项:除了原型设计/测试之外,很少有其他情况需要使用它。这是因为delay()完全停止了程序的执行。

您使用的是哪种语言,c#?处理使用的是Java。您能更具体一点吗?为什么
millis()
函数不适合您?你能发布一个吗?我不能使用延迟,因为它会停止GUI和注释的移动。我使用了注释位置并工作了!非常感谢你,我发现了一个延迟,我没有想到一个解决办法