aho_extra_motion.pde
float x,y;
float dir,dirChange,maxChange,speed;
void setup() {
size(300,300);
x=width/2;
y=height/2;
dir=random(360);
maxChange=10;
dirChange=random(-maxChange, maxChange);
speed=5;
ellipseMode(CENTER_DIAMETER);
framerate(25);
}
void loop() {
background(255,200,0);
// Update direction
dirChange=dirChange+random(-maxChange/5, maxChange/5);
if(dirChange<-maxChange) dirChange=-maxChange;
else if(dirChange>maxChange) dirChange=maxChange;
dir=dir+dirChange;
x=x+cos(radians(dir))*speed;
y=y+sin(radians(dir))*speed;
if(x>width) x=0;
else if(x<0) x=width;
if(y>width) y=0;
else if(y<0) y=width;
noFill();
stroke(100,0,0);
ellipse(x,y, 30,30);
fill(100,0,0);
ellipse(x,y,15,15);
}
|