Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用p5.js为矩形着色_Javascript_Arrays_Arraylist_Colors_P5.js - Fatal编程技术网

Javascript 使用p5.js为矩形着色

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

我试图制作一个矩形,每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);

}

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'。这两个变量名必须相同。