我有以下代码闪烁红色和白色的颜色。我想做出改变,但我不知道该怎么做。闪烁时,两种颜色停止3秒后再次开始。
float delay = 1; // 1 frame
void setup() {
size(200, 200);
}
void draw() {
background(96);
fill(255);
if(frameCount%(2*delay)<delay) fill(255, 0, 0);
rect(20, 20, 100, 100);
}
答案 0 :(得分:2)
方法1
正如The Hat with The Hat建议的那样,只有当frameCount%360&lt; 180
方法2
使用计时器:
float delay = 1; // 1 frame
long n;
void setup() {
size(200, 200);
n = millis();
}
void draw() {
background(96);
fill(255);
if (frameCount%(2*delay)<delay) {
fill(255, 0, 0);
}
if (millis() - n < 3000) // If 3 seconds haven't yet passed, show the rectangle
{
rect(20, 20, 100, 100);
}
else if (millis() - n > 6000) // If 6 seconds have passed, reset timer
{
n = millis();
}
}
答案 1 :(得分:1)
如果frameCount % 360
小于180
,我会做的只是绘制矩形:
float delay = 1; // 1 frame
void setup() {
size(200, 200);
}
void draw() {
background(96);
fill(255);
if(frameCount % (2 * delay) < delay) {
fill(255, 0, 0);
}
if(frameCount % 360 < 180) {
rect(20, 20, 100, 100);
}
}
答案 2 :(得分:1)
更简洁的计时器版本(使用frameCount进行计时通常是一个坏主意):
void setup() {
size(200, 200);
}
void draw() {
background(96);
fill(255);
if (millis()/1000%6<3 && frameCount%2<1)
fill(255, 0, 0);
rect(20, 20, 100, 100);
}