//i,j,k,m int dx,dy; int x,y; boolean shaking; void setup() { size(300,300); background(50,50,50); stroke(0,0,0); fill(50,50,50); x=width/2; y=height/2; shaking=false; } void draw() { if (shaking) { rect(0,0,width,height); //println("SHAKEN"); } if (mousePressed) { int x1,y1,xo,yo; dx=dy=0; xo=mouseX-x; yo=mouseY-y; if (xo!=0) { dx=xo/abs(xo); if (yo/xo>2) dx=0; } if (yo!=0) { dy=yo/abs(yo); if (xo/yo>2) dy=0; } } line(x,y,x+dx,y+dy); x+=dx; y+=dy; x=x%width; if (x<0) x+=width; y=y%width; if (y<0) y+=height; } void keyPressed() { switch (key) { case 'm': dy=1; break; case 'i': dy=-1; break; case 'k': dx=1; break; case 'j': dx=-1; break; case 's': shaking=true; break; } } void keyReleased() { switch (key) { case 'i': case 'm': dy=0; break; case 'j': case 'k': dx=0; break; case 's': shaking=false; break; } } void mouseReleased() { dx=dy=0; }