Код, который взаимодействует с мышью, клавиатурой и другими устройствами должен выполняться непрерывно. Чтобы это стало возможным, включите фрагмент кода, который должен повторяться непрерывно, в функцию draw().
Функция draw()
Запустите этот код, чтобы посмотреть, как работает функция draw():
void draw() {
// Выводит на консоль номер кадра
println("I’m drawing");
println(frameCount);
}
Вы увидите следующее:
I’m drawing
1
I’m drawing
2
I’m drawing
3
...
Код, записанный в блоке draw(), выполняется сверху вниз, а затем повторяется до тех пор, пока вы не выйдете из программы, нажав кнопку Stop
или закрыв окно. Каждый “прогон” кода в функции draw() называется кадр (frame). (По умолчанию, частота “прогонов” кода равна 60 кадров в секунду,
но вы можете установить другое значение). Функция println() в предыдущем примере выводит текст “I’m drawing” и номер кадра с помощью специальной переменной frameCount (1, 2, 3, ...). Текст появляется в консольном окне - область с черным фоном под текстовым редактором Processing.
Функция setup()
В дополнение к функции draw() Processing имеет функцию setup(), которая
запускается однократно при запуске программы:
void setup() {
println("I’m starting");
}
void draw() {
println("I’m running");
}
Пока программа работает, на консоль выводится следующее сообщение:
I’m starting
I’m running
I’m running
I’m running
...
Текст “I’m running” будет выводиться на консоль до тех пор, пока программа не будет остановлена. В типичной программе код внутри функции setup() используется для задания начальных значений переменных. Первая строка - это, как правило, функция size(), далее могут быть включены функции, задающие цвета заливки и линий или функции для загрузки изображений и шрифтов. (Если вы не включите функцию size(), окно будет иметь размер 100x100 пикселей.) Теперь вы знаете как использовать setup() и draw(), но это еще не все. Есть еще одна область в текстовом редакторе, куда вы можете вписывать код - это область вне функций setup() и draw(), где вы можете объявлять переменные.
Переменная, объявленная в функции setup(), не может быть использована где-то еще. Переменная, объявленная вне этих функций, называется глобальной
переменной, потому что она может быть использована в любом месте программы (”глобально”). Для пояснения приведем последовательность, в которой работает код:
1. Объявляются переменные вне функция setup() и draw().
2. Код внутри функции setup() запускается один раз.
3. Код внутри функции draw() работает непрерывно.
setup() и draw()
В этом примере применяются обе функции:
int x = 280;
int y = -100;
int diameter = 380;
void setup() {
size(480, 120);
smooth();
fill(102);
}
void draw() {
background(204);
ellipse(x, y, diameter, diameter);
}