Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
void setup() {
  size(400, 400);
  smooth();
}

void draw() {
  frameRate(60);
  background(173, 207, 241);
  rectMode(CENTER);
  ellipseMode(CENTER);

  //Halo
  stroke(157, 231, 215);
  fill(98, 181, 229);
  ellipse(0, 0, 450, 550);
  ellipse(400, 0, 250, 550);

  //Foreground
  stroke(0, 122, 83);
  fill(164, 214, 94);
  ellipse(200, 400, 1000, 350);
  noStroke();
  fill(0, 100);
  ellipse(200, 280, 130, 30);

  //Grunt Back
  noStroke();
  fill(253, 175, 30);
  triangle(170, 195, 230, 200, 205, 140);
  fill(150);
  triangle(175, 195, 225, 200, 204, 150);

  //Grunt Arms
  fill(179, 176, 196);
  ellipse(172, 208, 30, 33);
  ellipse(170, 217, 15, 18);
  quad(235, 240, 250, 260, 250, 235, 229, 195);
  quad(220, 205, 230, 250, 243, 240, 229, 195);

  //Grunt Legs
  ellipse(171, 273, 25, 15);
  quad(185, 225, 196, 230, 180, 275, 160, 275);
  ellipse(227, 277, 30, 15);
  quad(213, 225, 208, 230, 215, 280, 240, 280);

  //Grunt Body
  fill(253, 175, 30);
  quad(165, 190, 235, 195, 210, 250, 190, 249);

  //Grunt Head
  fill(179, 176, 196);
  ellipse(200, 180, 30, 30);

  //Grunt Eyes
  stroke(0);
  fill(50);

  ellipse(193, 177, 10, 10);
  ellipse(207, 177, 10, 10);

  //Grunt Mask
  stroke(150);
  fill(190);
  ellipse(195, 190, 15, 10);
  ellipse(205, 190, 15, 10);
  fill(200);
  ellipse(200, 190, 10, 10);

  //Needler
  stroke(114, 60, 152);
  fill(130, 78, 161);
  ellipse(175, 213, 20, 22);
  stroke(150);
  fill(190);
  ellipse(175, 223, 5, 10);
  ellipse(175, 214, 5, 10);
  fill(95, 37, 159);
  stroke(116, 209, 234);
  ellipse(170, 207, 4, 2);
  fill(245, 126, 182);
  triangle(168, 206, 172, 206, 166, 195);
  fill(95, 37, 159);
  ellipse(175, 205, 4, 2);
  stroke(116, 209, 234);
  fill(245, 126, 182);
  triangle(173, 204, 177, 204, 175, 190);
  fill(95, 37, 159);
  ellipse(180, 207, 4, 2);
  stroke(116, 209, 234);
  fill(245, 126, 182);
  triangle(178, 206, 182, 206, 184, 195);

  //Assult Rifle
  noStroke();
  fill(150);
  quad(mouseX*0.2+330, mouseY*0.2+300, mouseX*0.2+280, mouseY*0.2+300, 425, 380, 550, 380);
  fill(150);
  quad(mouseX*0.2+300, mouseY*0.2+250, mouseX*0.23+250, mouseY*0.25+275, mouseX*0.2+280, mouseY*0.2+320, mouseX*0.2+280, mouseY*0.2+300);
  quad(mouseX*0.23+250, mouseY*0.25+275, mouseX*0.23+250, mouseY*0.25+325, mouseX*0.15+300, mouseY*0.2+400, mouseX*0.1+360, mouseY*0.1+400);
  fill(100);
  quad(mouseX*0.2+279, mouseY*0.2+300, mouseX*0.2+279, mouseY*0.2+329, 400, 475, 475, 380);
  fill(45, 204, 211);
  quad(mouseX*0.2+280, mouseY*0.2+300, mouseX*0.2+330, mouseY*0.2+300, mouseX*0.22+335, mouseY*0.2+285, mouseX*0.21+270, mouseY*0.2+285);
  quad(mouseX*0.21+270, mouseY*0.2+286, mouseX*0.22+335, mouseY*0.2+286, mouseX*0.2+310, mouseY*0.2+250, mouseX*0.2+300, mouseY*0.2+250);

  //Hand
  fill(75);
  quad(mouseX*0.2+265, mouseY*0.2+350, mouseX*0.19+275, mouseY*0.2+360, mouseX*0.19+285, mouseY*0.2+381, mouseX*0.2+255, mouseY*0.2+381);
  quad(mouseX*0.2+255, mouseY*0.2+380, mouseX*0.19+285, mouseY*0.2+380, mouseX*0.1+350, mouseY*0.2+450, mouseX*0.2+260, mouseY*0.2+450);
  fill(0, 150, 57);
  quad(mouseX*0.2+251, mouseY*0.2+381, mouseX*0.2+255, mouseY*0.2+380, mouseX*0.2+260, mouseY*0.2+450, mouseX*0.2+250, mouseY*0.2+451);
}

void mousePressed() {
  frameRate(5);

  //Muzzle Flash
  strokeWeight(5);
  stroke(255, 127, 50, 190);
  fill(255, 163, 0, 190);
  ellipseMode(CENTER);
  ellipse(mouseX*0.21+265, mouseY*0.2+305, 70, 85);
  strokeWeight(1);

  //Assult Rifle 2
  noStroke();
  fill(150);
  quad(mouseX*0.2+330, mouseY*0.2+300, mouseX*0.2+280, mouseY*0.2+300, 425, 380, 550, 380);
  fill(150);
  quad(mouseX*0.2+300, mouseY*0.2+250, mouseX*0.23+250, mouseY*0.25+275, mouseX*0.2+280, mouseY*0.2+320, mouseX*0.2+280, mouseY*0.2+300);
  quad(mouseX*0.23+250, mouseY*0.25+275, mouseX*0.23+250, mouseY*0.25+325, mouseX*0.15+300, mouseY*0.2+400, mouseX*0.1+360, mouseY*0.1+400);
  fill(100);
  quad(mouseX*0.2+279, mouseY*0.2+300, mouseX*0.2+279, mouseY*0.2+329, 400, 475, 475, 380);
  fill(45, 204, 211);
  quad(mouseX*0.2+280, mouseY*0.2+300, mouseX*0.2+330, mouseY*0.2+300, mouseX*0.22+335, mouseY*0.2+285, mouseX*0.21+270, mouseY*0.2+285);
  quad(mouseX*0.21+270, mouseY*0.2+286, mouseX*0.22+335, mouseY*0.2+286, mouseX*0.2+310, mouseY*0.2+250, mouseX*0.2+300, mouseY*0.2+250);

  //Hand 2
  fill(75);
  quad(mouseX*0.2+265, mouseY*0.2+350, mouseX*0.19+275, mouseY*0.2+360, mouseX*0.19+285, mouseY*0.2+381, mouseX*0.2+255, mouseY*0.2+381);
  quad(mouseX*0.2+255, mouseY*0.2+380, mouseX*0.19+285, mouseY*0.2+380, mouseX*0.1+350, mouseY*0.2+450, mouseX*0.2+260, mouseY*0.2+450);
  fill(0, 150, 57);
  quad(mouseX*0.2+251, mouseY*0.2+381, mouseX*0.2+255, mouseY*0.2+380, mouseX*0.2+260, mouseY*0.2+450, mouseX*0.2+250, mouseY*0.2+451);
  
}