您的位置:首页 > 其它

Processing 实现 定时器

2016-01-28 09:32 267 查看
想用Processing实现一个类似 单片机 中的定时器,参考文献中使用了 millis() 函数(获取系统运行时间),写了一个 CTimer 类,原代码会有一个报错:

The nested type (Node) cannot hide an enclosing type


原因(似乎)是 Timer 是Processing里的一个内部类……So,改名叫CTimer了。

例子中先定义了一个 CTimer 类,然后实例化一个 timer1 对象,设置为1000ms(中断/执行)一次,每隔1s换一下背景色:

class CTimer {
int savedTime;
int totalTime;
CTimer(int tempTotalTime) {
totalTime = tempTotalTime;
}

void start() {
savedTime = millis();
}
boolean isFinished() {
int passedTime = millis()- savedTime;
if (passedTime > totalTime) {
return true;
} else {
return false;
}
}
}
CTimer timer1;
static int i=0;
void setup() {
size(200,200);
background(255,0,0);        //设置背景为红色
timer1 = new CTimer(1000);  //设置定时时间为 1000 ms
timer1.start();
}
void draw() {
if ( timer1.isFinished() ) {
i++;
if(i%2==1){
background(0,255,0);    //设置背景为绿色
}else{
background(255,0,0);    //设置背景为红色
}
timer1.start();
}
}




注意Processing(Java)中 static 和C中的用法不同,如果写在函数中,会报错:

Illegal Modifier for Parameter - Only final Permitted


参考自:

请问processing中可以设置定时器吗?

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: