Javascript 使用p5.js为矩形着色
我试图制作一个矩形,每2秒闪烁一次不同的颜色,但我的阵列不工作。我不知道为什么。这是我的代码:Javascript 使用p5.js为矩形着色,javascript,arrays,arraylist,colors,p5.js,Javascript,Arrays,Arraylist,Colors,P5.js,我试图制作一个矩形,每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() { back
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);
}
Timer变量和SelectedColor变量未初始化,javascript将未初始化的变量设置为undefined,因此在if语句中,它永远不会为真,在底部,除了颜色内的警告或错误之外,您不会得到任何结果[]由于选择的颜色首先是未定义的,因此它的模数不会有任何意义两个问题:
计时器值未初始化-将其设置为0或更小的值
小于millis()
。这同样适用于selectedcolor
selectedcolor
您正在递增selectedColor
首先将计时器变量设置为默认值,并固定两个变量“selectedColor”和“selectedColor”的名称。你的问题会解决的 两个变量?selectedColour只是一个变量,我看不到变量selectedColour的重新声明。您能用一个example@ShreyanMehta他指的是这行
selectedColor++
在没有u
的情况下拼写它。这样,它们是两个独立的variables@mikeyq6抱歉,我的错误,没有发现缺少的U您正在递增'selectedColor++',但在填充中(colors[selectedColor%colors.length])您正在使用另一个变量'selectedColor'。这两个变量名必须相同。