Главная » Processing » Работаем с мышью в Processing

0

Возможно, для взаимодействия с компьютером вы используете мышь. Она является стаартным устройством всех компьютеров с графическим интерфейсом пользователя (GUI). Мышь стала популярной после того, как Apple выпустила Macintosh в 1980-х.

Большинство пользователей знают, как использовать мышь или тачпад, поэтому будет хорошей идеей делать интерактивные приложения с мышью.

Как это делается

Ниже приведен код нашего скетча.

Функция draw() здесь пуста, так как мы делаем все операции в функциях мыши. Однако нам необходимо добавить функцию draw для непрерывной работы нашего приложения. Без нее код в setup() запустится один раз и приложение не будет интерактивным.

void setup()

{

size( 640, 480 );

smooth(); background( 255 );

}

void draw()

{

// empty, but we need it to create an app that runs in the continuous mode.

}

void mousePressed()

{

if ( mouseButton == RIGHT ) { background( 255 );

}

}

void mouseMoved()

{

stroke( 0, 64 );

strokeWeight( 1 );

fill( 255, 32 );

float d = dist( mouseX, mouseY, pmouseX, pmouseY ); constrain( d, 8, 100 );

ellipse( mouseX, mouseY, d, d );

}

void mouseDragged()

{

stroke( 0 );

float d = dist( mouseX, mouseY, pmouseX, pmouseY ); constrain( d, 0, 100 );

float w = map( d, 0, 100, 1, 10 ); strokeWeight( w );

line( mouseX, mouseY, pmouseX, pmouseY );

}

void mouseReleased()

{

noStroke(); fill( 255, 16 );

rect( 0, 0, width, height );

}

void mouseClicked()

{

fill( 255, 0, 0, 128 );

float d = random( 20, 200 ); ellipse( mouseX, mouseY, d, d );

}

Набрав код, вы можете запустить его кнопкой run или сочетанием клавиш Cmd + R на Mac или Ctrl + R на Windows или Linux. Теперь вы можете рисовать мышью. Мышь оставляет след в виде кругов. Когда вы нажимаете кнопку и отпускаете ее, появляется красный круг. Когда вы двигаете мышью, удерживая левую кнопку мыши, появляется черная линия. По нажатию правой кнопки мыши картинка стирается и вы можете начать сначала. На экране должно быть что-то похожее на этот скриншот:

Как это работает

Существует пять функций и шесть встроенных переменных, служащих для отслеживания мыши в вашем скетче:

f   Функция mouseClicked() активируется, когда вы кликаете мышью. Это означает нажатие и отпускание кнопки мыши. В последнем нашем скетче эта функция применяется для рисования прозрачного красного круга.

f   Функция mouseDragged() активируется, когда вы нажимаете кнопку мыши и двигаете мышью, пока кнопка нажата. С помощью этой функции мы рисуем линии в нашем скетче.

f   Функция mouseMoved() вызывается каждый раз, когда мышь передвигается, а кнопки не нажаты. В нашем скетче она рисует белые прозрачные круги с черной прозрачной границей.

f   Функция mousePressed() вызывается, когда вы нажимаете кнопку мыши. Мы использовали эту функцию вместе со встроенной переменной mouseButton для очистки экрана правой кнопкой мыши.

f   Функция mouseReleased() вызывается, когда вы отпускаете кнопку мыши. С помощью этой функции мы рисуем белый прозрачный прямоугольник размером с окно скетча поверх всех изображений.

f   Встроенная переменная mouseX содержит текущую координату x мыши в окне скетча. Она обновляется с каждым кадром.

f   Встроенная переменная mouseY содержит текущую координату y мыши в окне скетча. Она обновляется с каждым кадром.

f  Встроенная переменная pmouseX содержит координату x мыши предыдущего кадра. Она обновляется с каждым кадром.

f  Встроенная переменная pmouseY содержит координату y мыши предыдущего кадра. Она обновляется с каждым кадром.

f Встроенная переменная mousePressed – это логическая переменная, провяющая, нажата кнопка или нет. Значение переменной истинно, когда кнопка мыши нажата и ложно, когда она отжата.

f   Встроенная переменная mouseButton – это переменная, содержащая информацию о том, какая кнопка мыши нажата. Она принимает значения LEFT, RIGHT и CENTER.

Источник: Ян Вантомм, Processing 2: креативное программирование, перевод с английского Александры Мишутиной, Published by Packt Publishing Ltd., 2012, BIRMINGHAM – MUMBAI.

По теме:

  • Комментарии