Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Processing:Примеры/Применение функций для работы с мышкой

Материал из Онлайн справочника
Перейти к: навигация, поиск


Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Ambox content.png Черновик


Описание[1]

Кликните на квадрат, зажмите кнопку мыши и перетащите квадрат в другое место экрана.

Пример

  1. float bx;
  2. float by;
  3. int boxSize = 75;
  4. boolean overBox = false;
  5. boolean locked = false;
  6. float xOffset = 0.0;
  7. float yOffset = 0.0;
  8.  
  9. void setup() {
  10.   size(640, 360);
  11.   bx = width/2.0;
  12.   by = height/2.0;
  13.   rectMode(RADIUS);  
  14. }
  15.  
  16. void draw() {
  17.   background(0);
  18.  
  19.   // проверяем, не находится ли курсор на квадрате:
  20.   if (mouseX > bx-boxSize && mouseX < bx+boxSize &&
  21.       mouseY > by-boxSize && mouseY < by+boxSize) {
  22.     overBox = true;  
  23.     if(!locked) {
  24.       stroke(255);
  25.       fill(153);
  26.     }
  27.   } else {
  28.     stroke(153);
  29.     fill(153);
  30.     overBox = false;
  31.   }
  32.  
  33.   // рисуем квадрат:
  34.   rect(bx, by, boxSize, boxSize);
  35. }
  36.  
  37. void mousePressed() {
  38.   if(overBox) {
  39.     locked = true;
  40.     fill(255, 255, 255);
  41.   } else {
  42.     locked = false;
  43.   }
  44.   xOffset = mouseX-bx;
  45.   yOffset = mouseY-by;
  46.  
  47. }
  48.  
  49. void mouseDragged() {
  50.   if(locked) {
  51.     bx = mouseX-xOffset;
  52.     by = mouseY-yOffset;
  53.   }
  54. }
  55.  
  56. void mouseReleased() {
  57.   locked = false;
  58. }

См.также

Внешние ссылки

  1. processing.org - Mouse Functions