我正在尝试制作一个每2秒闪烁一次不同颜色的矩形,但我的阵列无效。我不知道为什么。这是我的代码:
var colours = [2];
var selectedColour;
var timer;
function setup() {
createCanvas(800, 800);
colours[0] = color(255, 0, 0);
colours[1] = color(0, 0, 255);
}
function draw() {
background(10);
if (millis() - timer > 2000) {
selectedColor++;
timer = millis();
}
fill(colours[selectedColour % colours.length]);
rect(width / 2, height / 2, 50, 50);
}
答案 0 :(得分:0)
定时器var和selectedColour var未初始化,javascript将未初始化的var设置为undefined,因此在if语句中,它永远不会是真的,也在底部你不会得到任何东西,但可能是颜色[]中的警告或错误,因为selectedColour首先是未定义因此它的模数不会有任何意义
答案 1 :(得分:0)
两个问题:
您的timer
值未初始化 - 将其设置为0或更少
比millis()
。这同样适用于selectedColour
。
您所选颜色的变量名为selectedColour
但是
你正在递增selectedColor
。
答案 2 :(得分:0)
首先设置定时器变量的默认值并修复两个变量的名称" selectedColour"和" selectedColor"。你的问题将得到解决。