PImage words; float bx; float by; int bs; boolean bover = false; boolean locked = false; float bdifx = 0.0; float bdify = 0.0; void setup() { size(600, 600); words = loadImage("words.png"); rectMode(CENTER_RADIUS); } void draw() { background(255); image(words, 0, 0); stroke(0); draw_circle(200, 200,350); draw_circle(400, 200,350); draw_circle(300, 400,350); // Test if the cursor is over the box } void mousePressed() { if(bover) { locked = true; fill(255, 255, 255); } else { locked = false; } bdifx = mouseX-bx; bdify = mouseY-by; } void mouseDragged() { if(locked) { bx = mouseX-bdifx; by = mouseY-bdify; } } void mouseReleased() { locked = false; } void draw_circle(float bx, float by, int bs){ if (mouseX > bx-bs/2 && mouseX < bx+bs/2 && mouseY > by-bs/2 && mouseY < by+bs/2) { bover = true; if(!locked) { stroke(0); fill(220, 50); } } else { stroke(0); fill(255); bover = false; } // Draw the box ellipse(bx, by, bs, bs); }