Раскраска прямоугольника с помощью p5.js - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь создать прямоугольник, который мигает разным цветом каждые 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);

}

Ответы [ 3 ]

0 голосов
/ 02 мая 2018

Две проблемы:

  1. Ваше значение timer не инициализировано - установите его на 0 или меньше чем millis(). То же относится и к selectedColour.

  2. Ваша переменная для выбранного цвета называется selectedColour, но вы увеличиваете selectedColor.

0 голосов
/ 02 мая 2018

Сначала установите значение по умолчанию для переменной таймера и зафиксируйте имя двух переменных «selectedColour» и «selectedColor». Ваша проблема будет решена.

0 голосов
/ 02 мая 2018

Timer var и selectedColour var не инициализируются, javascript устанавливает неинициализированный var в значение undefined, поэтому внутри оператора if это никогда не будет true, также в нижней части вы не получите ничего, кроме, вероятно, предупреждения или ошибки внутри цветов [], так как selectedColour будет первым неопределенным, поэтому модуль его значения ничего не будет значить

...