Працюємо з мишею в Processing

Можливо, для взаємодії з компютером ви використовуєте миша Вона є стаартним пристроєм всіх компютерів з графічним інтерфейсом користувача (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

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*