> show canvas only <


/* 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();
}