mouseに関する関数は
mousePressed()の3つがあります。それぞれの名前が示す動作が行われた場合に呼び出されます。
mouseDragged()
mouseReleased()
float bx;float by;int boxSize = 75;boolean overBox = false;boolean locked = false;float xOffset = 0.0;float yOffset = 0.0;void setup(){size(640, 360);bx = width/2.0;by = height/2.0;rectMode(RADIUS);}void draw(){background(0);if (mouseX > bx-boxSize && mouseX < bx+boxSize &&mouseY > by-boxSize && mouseY < by+boxSize) {overBox = true;
//mouseがBOXの範囲に入っているとoverBoxをtrueにする。
if(!locked) {stroke(255);fill(153);
//mousePressされいない場合、線だけ白にする。
}} else {stroke(153);fill(153);overBox = false;}
//mouseがBOXの範囲に入っていない場合overBOXをtrueにする。rect(bx, by, boxSize, boxSize);}void mousePressed() {if(overBox) {locked = true;
//もしmouseがBOXの範囲内ならば
fill(255, 255, 255);} else {locked = false;}
xOffset = mouseX-bx;yOffset = mouseY-by;
//mouseX,Yとbx,byの差を出す。}void mouseDragged() {if(locked) {
//もしmouseがBOXの範囲内ならば
bx = mouseX-xOffset;by = mouseY-yOffset;
//boxの位置をずらす。}}void mouseReleased() {locked = false;}