skip to main |
skip to sidebar

// KLISTREKLUMP
Dot d[] = new Dot[80];
PImage b;
float klumpsize;
void setup() {
size(600,600);
smooth();
noStroke();
noCursor();
framerate(50);
b = loadImage("virus4svhv.jpg");
klumpsize = 60;
for(int i=0; i<1)klumpsize=2; x =" random(width);" y =" random(height);" angle =" random(360);" speed =" 0.3;" dotsize =" random(12,20);" stuck =" false;" ramme =" 100;" x="width+ramme;">width+ramme) x=-ramme;
if(y<-ramme) y=height+ramme; if(y>height+ramme) y=-ramme;
// remove them if mouse moves fast
if(stuck && (abs(mouseX-pmouseX)>100 || abs(mouseY-pmouseY)>50)) {
stuck=false;
angle = degrees(mouseDirection())-90;
if(abs(mouseX-pmouseX)0.3) speed -= 0.01;
if(stuck) {
x = x + (mouseX-pmouseX);
y = y + (mouseY-pmouseY);
dotsize += 0.05;
klumpsize -=0.0015;
}
else {
if(dist(x,y,mouseX, mouseY)klumpsize-10) {
// AVSTANDEN MELLOM DOT OG KLUMP AVGJØR FART MOT KLUMP
x = x + (mouseX-x)/155;
y = y + (mouseY-y)/155;
}
else {
// CALCULATE POSITION
x = x + cos(radians(angle))*speed;
y = y + sin(radians(angle))*speed;
// CALCULATE ANGLE & ANGLE CHANGE
angle=angle+angleDir;
angleDir=angleDir+random(-0.3,0.3); // CHANGE
if(angleDir<-3) angleDir=-3; // MIN CHANGE else if(angleDir>3) angleDir=3; // MAX CHANGE
// FLIP DIRECTION EVER 50.FRAME
if(frameCount%50==0) angleDir=-angleDir;
}
// if close, make it stick
if(dist(x,y,mouseX, mouseY)<42>30)
stuck = true;
}
if(stuck == false && klumpsize<60>20) {
dotsize -= 0.06;
klumpsize +=0.003;
}
fill(255,0,0,180);
strokeWeight(10);
stroke(255,0,0,90);
ellipse(x,y,dotsize,dotsize);
}
}
float mouseDirection() {
return atan2(mouseX-pmouseX, mouseY-pmouseY);
}
void mousePressed(){
setup();
}
No comments:
Post a Comment