Timer 在处理过程中创建一个简单的倒计时

Timer 在处理过程中创建一个简单的倒计时,timer,processing,countdown,intervals,Timer,Processing,Countdown,Intervals,我在谷歌上搜索了这么多网站,试图让它工作,但似乎没有人在任何地方有这个,如果他们这样做了,那就是我的程序无法工作。。。我试图做到的是让一个玩家在被击中时产生反冲,在第一次和第二次被击中之间有一个“x”的时间 所以我有一个布尔“hit”=false,当他被击中时,它变为true。这意味着他不能再被击中,除非它再次变为假 因此,我试图在我的程序中设置一个函数,为“x”秒数设置一个“计时器”如果hit=true,一旦计时器达到“x”秒数,hit将切换回false 有人有什么想法吗 谢谢 一个简单的选择

我在谷歌上搜索了这么多网站,试图让它工作,但似乎没有人在任何地方有这个,如果他们这样做了,那就是我的程序无法工作。。。我试图做到的是让一个玩家在被击中时产生反冲,在第一次和第二次被击中之间有一个“x”的时间

所以我有一个
布尔“hit”=false
,当他被击中时,它变为
true
。这意味着他不能再被击中,除非它再次变为假

因此,我试图在我的程序中设置一个函数,为“x”秒数设置一个“计时器”
如果hit=true
,一旦计时器达到“x”秒数,hit将切换回false

有人有什么想法吗


谢谢

一个简单的选择是使用手动跟踪时间

您将使用两个变量:

  • 一个用于存储经过的时间
  • 一个用于存储所需的等待/延迟时间
  • 在draw()方法中,您将检查当前时间(以毫秒为单位)与以前存储的时间之间的差值是否大于(或等于)延迟

    如果是这样,这将提示您对给定的延迟执行任何操作,并更新存储的时间:

    int time;
    int wait = 1000;
    
    void setup(){
      time = millis();//store the current time
    }
    void draw(){
      //check the difference between now and the previously stored time is greater than the wait interval
      if(millis() - time >= wait){
        println("tick");//if it is, do something
        time = millis();//also update the stored time
      }
    }
    
    以下是屏幕上“针”的一个微小变化:

    int time;
    int wait = 1000;
    
    boolean tick;
    
    void setup(){
      time = millis();//store the current time
      smooth();
      strokeWeight(3);
    }
    void draw(){
      //check the difference between now and the previously stored time is greater than the wait interval
      if(millis() - time >= wait){
        tick = !tick;//if it is, do something
        time = millis();//also update the stored time
      }
      //draw a visual cue
      background(255);
      line(50,10,tick ? 10 : 90,90);
    }
    
    根据您的设置/需要,您可以选择将类似的内容包装到一个可以重用的类中。这是一种基本方法,应该也适用于Android和JavaScript版本(尽管在JavaScript中有setInterval()

    如果您对使用Java的实用程序感兴趣,正如FrankieTheKneeMan所建议的,有一个可用的类,我相信有大量的资源/示例

    您可以运行下面的演示:

    var时间;
    var-wait=1000;
    var tick=false;
    函数设置(){
    time=millis();//存储当前时间
    光滑的();
    冲程重量(3);
    }
    函数绘图(){
    //检查现在与以前存储的时间之差是否大于等待间隔
    如果(毫秒()-时间>=等待){
    tick=!tick;//如果是,做点什么
    time=millis();//同时更新存储的时间
    }
    //画一个视觉线索
    背景(255);
    行(50,10,勾选?10:90,90);
    }