我试图在处理草图中获得一个准确的时钟,而不是由draw()
函数引起的计时。
我实际上使用的是Java中的System.nanoTime()
而不是mills()
来获取纳秒,我回想起void draw中的时钟来初始化它。
我想知道如何在没有draw()
函数计时的情况下从draw()
获得一个独立的时钟来发送一些消息。
我需要它作为android内部的音乐定序器,我需要它完全准确。
这是我的情况:
long lasttimecheck;
long timeinterval;
void setup() {
lasttimecheck = System.nanoTime();
//step duration
timeinterval = 125000000L;
}
void clock(){
if (System.nanoTime() > lasttimecheck + timeinterval) {
lasttimecheck = System.nanoTime();
println("yeah" + lasttimecheck);
}
}
void draw() {
clock();
}
提前感谢!
发布于 2018-07-09 06:07:57
我不太确定您的目标是什么(或者为什么draw()
函数不能实现这个目标),但是您可以创建自己的线程并执行自己的计时。如下所示:
void setup(){
new Thread(){
public void run(){
while(true){
doTheThing();
Thread.sleep(1); //sleep for 1 ms
}
}
}.start();
}
这只是一个简单的例子,线程(又称并发)是一个高级主题,有很多复杂的东西需要考虑。因此,如果我是您,我会后退一步,尝试在常规draw()
循环的范围内工作,而不是自己处理线程。
https://stackoverflow.com/questions/51236031
复制相似问题