/* built with Studio Sketchpad:
* https://sketchpad.cc
*
* observe the evolution of this sketch:
* https://studio.sketchpad.cc/sp/pad/view/ro.bcqHLVvnKdN/rev.27
*
* authors:
* GoToLoop
* license (unless otherwise specified):
* creative commons attribution-share alike 3.0 license.
* https://creativecommons.org/licenses/by-sa/3.0/
*/
/**
* Stickman (v2.03)
* by Dino & TfGuy44 (2013/Oct)
* mod GoToLoop
*
* forum.processing.org/two/discussion/295/
* how-to-make-a-stickmans-armslegs-move
*
* studio.processingtogether.com/sp/pad/export/ro.9ozYNbweyOpjT/latest
*/
PImage bg;
void setup() {
size(300, 300, JAVA2D);
smooth(4);
noLoop();
frameRate(40);
stroke(0);
strokeWeight(3);
bg = createBG();
}
void mouseMoved() {
redraw();
}
void draw() {
if (1/2 == 1/2.) set(0, 0, bg);
else background(bg);
// Right Arm
translate(125, 85);
rotate(map(mouseX, 0, width, -PI, PI));
line(0, 0, -25, 75);
resetMatrix();
// Left Arm
translate(175, 85);
rotate(map(mouseX, 0, width, -PI, PI));
line(0, 0, 25, 75);
resetMatrix();
// Right Leg
translate(130, 185);
rotate(map(mouseY, 0, height, -PI, PI));
line(0, 0, 0, 65);
line(0, 65, -5, 65);
resetMatrix();
// Left Leg
translate(170, 185);
rotate(map(mouseY, 0, height, -PI, PI));
line(0, 0, 0, 65);
line(0, 65, 5, 65);
}
PImage createBG() {
final PGraphics pg = createGraphics(width, height, JAVA2D);
pg.beginDraw();
pg.smooth(4);
pg.ellipseMode(CENTER);
pg.rectMode(CENTER);
pg.background(#8080F0);
pg.stroke(0);
// Body
pg.strokeWeight(3);
pg.rect(width>>1, 135, 50, 100);
// Head
pg.ellipse(width>>1, 60, 50, 50);
// Eyes
pg.strokeWeight(5);
pg.point(width/2 - 10, 60);
pg.point(width/2 + 10, 60);
pg.endDraw();
return pg.get();
}