//click or hold off square speds up floow, and on square slows follow
float bx;
float by;
int bs = 20;
boolean mouseover = false;
boolean locked = false;
float bdifx = 0.0;
float bdify = 0.0;
PFont font;
float speed = .01;
void setup()
{
size(400, 400);
bx = width/2.0;
by = height/2.0;
rectMode(CENTER_RADIUS);
fill(123);
font = loadFont("Arial-BoldMT-48.vlw");
textFont(font, 44);
}
void draw()
{
background(0);
mouseOver();
// Draw the box
rect(bx, by, bs, bs);
text(key, 28, 75);
//mouseFollow();
}
//void mouseFollow(){
void mouseMoved(){
if(mouseover) {
locked = true;
} else {
locked = false;
//current position equals current position,
//plus mouse position divided by current position,
//times speed
bx += (mouseX - bx) * speed;
by += (mouseY - by) * speed;
}
}
void mouseOver(){
//is mouse cursor over the box
if (mouseX > bx-bs && mouseX < bx+bs && mouseY > by-bs && mouseY < by+bs) {
mouseover = true;
} else {
mouseover = false;
}
}
void mousePressed() {
if(mouseover) {
locked = true;
speed -= speed/2;
//fill(255, 255, 255);
} else {
locked = false;
speed += speed;
}
bdifx = mouseX-bx;
bdify = mouseY-by;
}
void mouseDragged() {
if(locked) {
bx = mouseX-bdifx;
by = mouseY-bdify;
}
}
void mouseReleased() {
locked = false;
}Alexis-H
on Wednesday, Oct 22, 2008 – 9:06 am