{"id":925,"date":"2012-12-12T08:20:33","date_gmt":"2012-12-12T08:20:33","guid":{"rendered":"http:\/\/www.joshuarosenstock.com\/teaching\/IMGD3x00_B12\/?p=925"},"modified":"2012-12-12T08:20:33","modified_gmt":"2012-12-12T08:20:33","slug":"final-project-post-5-monster-art-finished-on-processing","status":"publish","type":"post","link":"https:\/\/www.joshuarosenstock.com\/teaching\/IMGD3x00_B12\/2012\/12\/12\/final-project-post-5-monster-art-finished-on-processing\/","title":{"rendered":"Final Project Post 5 &#8211; Monster art finished on processing"},"content":{"rendered":"<p>The monster is fully made. I do not yet limit the amount of total limbs you can choose so you can add up to 5 more of each part onto the base monster. This is a picture of him with all parts filled in:<br \/>\n<img decoding=\"async\" src=\"http:\/\/www.joshuarosenstock.com\/teaching\/IMGD3x00_B12\/wp-content\/uploads\/2012\/12\/Screen-shot-2012-12-12-at-2.53.06-AM.png\" alt=\"monster\" \/><br \/>\nI do not have any game components in but the art aspects are basically done. I think I will add background music and maybe sound effects though. I may add a few other things if there is time but for now I will likely move to the game components. My script is below feel free to add parts to the monster. Tap 1 through 6 to add parts. 1 = arms 2=legs 3 = tails 4 = heads 5 = eyes 6 = wings. The keys used will change when the makey makey is added in. Also I thought it looked cool to alternate coloring for the legs and wings. I tried this effect in a few other places and it looked too busy. I like how it came out with the coloring differences just on those two.<br \/>\n<script type=\"application\/processing\">\r\n\/\/stats and stat display strings\r\nint attack = 8;\r\nString attackS = \"\" + attack;\r\nint magRes = 8;\r\nString magResS = \"\" + magRes;\r\nint evade = 8;\r\nString evadeS = \"\" + evade;\r\nint defense = 8;\r\nString defenseS = \"\" + defense;\r\nint speed = 8;\r\nString speedS = \"\" + speed;\r\nint monSpeed = 5;\r\nint monAttack = 5;\r\nint monDefense = 5;\r\nint monMagic = 5;\r\n\/\/the monster's high and 2 medium stats\r\nint monH = 5;\r\nint monM1 = 5;\r\nint monM2 = 5;\r\n\r\n\/\/counts of added limbs\r\nint heads = 0;\r\nint arms = 0;\r\nint tails = 0;\r\nint eyes = 0;\r\nint wings = 0;\r\nint legs = 0;\r\n\r\n\/\/roll and display string for the roll\r\nint roll = 0;\r\nString rollS = \"\" + roll;\r\n\r\n\/\/health and display string\r\nint health = 1000;\r\nString healthS = \"\" + health;\r\nint monHealth = 20;\r\nString monHealthS = \"\" + monHealth;\r\n\r\n\/\/the stage we are at\r\nint stage = 0;\r\n\r\nvoid setup(){\r\n  size(1000,800);\r\n  background(238,207,161);\r\n  generateEnemy();\r\n  \r\n}\r\n\r\nvoid draw(){\r\n  \/\/set up stat display\r\n  fill(156,102,31);\r\n  rect(0,600,999,200);\r\n  PFont f = createFont(\"Arial\",50,true);\r\n  textFont(f,20);\r\n   fill(50,20,0);\r\n   text(\"Monster Stats:\",10,630);\r\n   fill(255,0,0);\r\n   text(\"Attack:\",25, 680);\r\n   fill(50,20,0);\r\n   text(attackS,100,680);\r\n   fill(100,0,255);\r\n   text(\"Magic Resistance:\",255, 680);\r\n   fill(50,20,0);\r\n   text(magResS,430,680);\r\n   fill(0,0,255);\r\n   text(\"Evade:\",570, 680);\r\n   fill(50,20,0);\r\n   text(evadeS,650,680);\r\n   fill(255,255,0);\r\n   text(\"Defense:\",180, 750);\r\n   fill(50,20,0);\r\n   text(defenseS,270,750);\r\n   fill(0,255,0);\r\n   text(\"Speed:\",480, 750);\r\n   fill(50,20,0);\r\n   text(speedS,550,750);\r\n   \r\n   \/\/set up dice roll display box\r\n   fill(156,102,31);\r\n   rect(700,600,299,200);\r\n   fill(50,20,0);\r\n   textFont(f,35);\r\n   text(\"Your last die roll:\",720,650);\r\n   textFont(f,150);\r\n   text(rollS, 800, 780);\r\n   \r\n   \/\/ Handle left portion of top display (monster and health\r\n   textFont(f,25);\r\n   text(\"Monster\",90,30);\r\n   text(\"Health: \", 60,550);\r\n   text(healthS, 180,550);\r\n   strokeWeight(3);\r\n   line(85,46,190,46);\r\n   strokeWeight(1);\r\n   \r\n   \/\/The box that displays attack and attack damage that occurs\r\n   text(\"Damage\",420,170);\r\n   fill(238,207,161);\r\n   strokeWeight(3);\r\n   rect(370,210,200,230);\r\n   fill(50,20,0);\r\n   strokeWeight(1);\r\n   \r\n   \/\/ Handle right portion of top display (monster and health\r\n   textFont(f,25);\r\n   text(\"Enemy\",740,30);\r\n   text(\"Health: \", 710,550);\r\n   text(monHealthS, 830,550);\r\n   strokeWeight(3);\r\n   line(725,46,840,46);\r\n   strokeWeight(1);\r\n   drawEnemy();\r\n   drawMonster();\r\n}\r\n\r\nvoid generateEnemy(){\r\n  \/\/0 = speed, 1 = attack, 2 = defense, 3 = magic\r\n  ArrayList stats = new ArrayList();\r\n  stats.add(0);\r\n  stats.add(1);\r\n  stats.add(2);\r\n  stats.add(3);\r\n  int rand = int(random(stats.size()));\r\n  int highStat = (Integer)stats.get(rand);\r\n  stats.remove(rand);\r\n  rand = int(random(stats.size()));\r\n  int medStat1 =(Integer) stats.get(rand);\r\n  stats.remove(rand);\r\n  rand = int(random(stats.size()));\r\n  int medStat2 = (Integer) stats.get(rand);\r\n  stats.remove(rand);\r\n  int lowStat = (Integer) stats.get(0);\r\n  int speedStat = 0;\r\n  int attStat = 0;\r\n  int defStat = 0;\r\n  int magStat = 0;\r\n  int getHStat = int(random(8,12));\r\n  if(highStat == 0) speedStat = getHStat;\r\n  if(highStat == 1) attStat = getHStat;\r\n  if(highStat == 2) defStat = getHStat;\r\n  if(highStat == 3) magStat = getHStat;\r\n  int getM1Stat = int(random(4,9));\r\n  if(medStat1 == 0) speedStat = getM1Stat;\r\n  if(medStat1 == 1) attStat = getM1Stat;\r\n  if(medStat1 == 2) defStat = getM1Stat;\r\n  if(medStat1 == 3) magStat = getM1Stat;\r\n  int getM2Stat = int(random(4,9));\r\n  if(medStat2 == 0) speedStat = getM2Stat;\r\n  if(medStat2 == 1) attStat = getM2Stat;\r\n  if(medStat2 == 2) defStat = getM2Stat;\r\n  if(medStat2 == 3) magStat = getM2Stat;\r\n  int getLStat = int(random(1,4));\r\n  if(lowStat == 0) speedStat = getLStat;\r\n  if(lowStat == 1) attStat = getLStat;\r\n  if(lowStat == 2) defStat = getLStat;\r\n  if(lowStat == 3) magStat = getLStat;\r\n  monSpeed = speedStat + stage;\r\n  monAttack = attStat + stage;\r\n  monDefense = defStat + stage;\r\n  monMagic = magStat + stage;\r\n  monH = highStat;\r\n  if(getM1Stat > getM2Stat){\r\n    monM1 = medStat1;\r\n    monM2 = medStat2;\r\n  }\r\n  else if(getM2Stat > getM1Stat){\r\n    monM1 =medStat2;\r\n    monM2 = medStat1;\r\n  }\r\n  else{\r\n    if(int(random(2)) == 1){\r\n      monM1 = medStat1;\r\n      monM2 = medStat2;\r\n    }\r\n    else{\r\n      monM1 =medStat2;\r\n      monM2 = medStat1;\r\n    }\r\n  }\r\n}\r\n\r\nvoid drawEnemy(){\r\n  fill(238,207,161);\r\n  noStroke();\r\n  rect(690,80,310,430);\r\n  PFont f = createFont(\"Arial\",50,true);\r\n  textFont(f,20);\r\n  fill(50,20,0);\r\n   \/\/0 = speed, 1 = attack, 2 = defense, 3 = magic\r\n   String monster = \"\";\r\n   color fillC = color(0,0,0);\r\n  if(monM2 == 0){\r\n    monster += \"quick\";\r\n    stroke(0,255,0);\r\n  }\r\n  if(monM2 == 1){\r\n    monster += \"aggressive\";\r\n    stroke(255,0,0);\r\n  }\r\n  if(monM2 == 2){\r\n    monster += \"hardy\";\r\n    stroke(255,255,0);\r\n  }\r\n  if(monM2 == 3){\r\n    monster += \"magical\";\r\n    stroke(150,0,255);\r\n  }\r\n  if(monM1 == 0){\r\n    monster += \" running\";\r\n    fillC = color(0,255,0);\r\n  }\r\n  if(monM1 == 1){\r\n    monster += \" striking\";\r\n    fillC = color(255,0,0);\r\n  }\r\n  if(monM1 == 2){\r\n    monster += \" blocking\";\r\n    fillC = color(255,255,0);\r\n  }\r\n  if(monM1 == 3){\r\n    monster += \" casting\";\r\n    fillC = color(150,0,255);\r\n  }\r\n  \/\/we cannot set the fill until later so this will need to be checked again\r\n  \/\/for the actual drawing\r\n  if(monH == 0){\r\n    monster += \" speed-demon\";\r\n  }\r\n  if(monH == 1){\r\n    monster += \" warrior\";\r\n  }\r\n  if(monH == 2){\r\n    monster += \" defender\";\r\n  }\r\n  if(monH == 3){\r\n    monster += \" wizard\";\r\n  }\r\n  text(monster, 700,100);\r\n  strokeWeight(4);\r\n  fill(fillC);\r\n  if(monH == 0){\r\n    drawSpeedDemon();\r\n  }\r\n  if(monH == 1){\r\n    drawWarrior();\r\n  }\r\n  if(monH == 2){\r\n    drawDefender();\r\n  }\r\n  if(monH == 3){\r\n    drawWizard();\r\n  }\r\n  stroke(0);\r\n  strokeWeight(1);\r\n}\r\n\r\nvoid keyPressed(){\r\n  if(key== ' ')\r\n    generateEnemy();\r\n   if(key=='1')\r\n   {\r\n     if(arms< 5)\r\n       arms++;\r\n   }\r\n   if(key=='2')\r\n   {\r\n     if(legs< 5)\r\n       legs++;\r\n   }\r\n   \r\n   if(key=='3')\r\n   {\r\n     if(tails<5)\r\n       tails++;\r\n   }\r\n   if(key=='4')\r\n   {\r\n     if(heads<5)\r\n       heads++;\r\n   }\r\n   if(key=='5'){\r\n     if(eyes <5)\r\n       eyes++;\r\n   }\r\n   if(key=='6'){\r\n     if(wings <5)\r\n       wings++;\r\n   }\r\n}\r\n\r\nvoid drawSpeedDemon(){\r\n  beginShape();\r\n  vertex(780,270);\r\n  vertex(800,220);\r\n  vertex(820,270);\r\n  endShape(CLOSE);\r\n  beginShape();\r\n  vertex(805,270);\r\n  vertex(830,230);\r\n  vertex(845,270);\r\n  endShape(CLOSE);\r\n  beginShape();\r\n  vertex(820,255);\r\n  vertex(870,260);\r\n  vertex(840,300);\r\n  endShape(CLOSE);\r\n  beginShape();\r\n  vertex(850,320);\r\n  vertex(870,340);\r\n  vertex(810,345);\r\n  endShape(CLOSE);\r\n  beginShape();\r\n  vertex(830,340);\r\n  vertex(850,365);\r\n  vertex(810,350);\r\n  endShape(CLOSE);\r\n  line(840,300,880,320);\r\n  line(880,320,910,290);\r\n  line(910,290,920,300);\r\n  line(920,300,940,270);\r\n  ellipse(948,262,20,20);\r\n  ellipse(810,300,100,100);\r\n  fill(0);\r\n  ellipse(780,290,16,16);\r\n  ellipse(820,290,16,16);\r\n  line(790,320,800,315);\r\n  line(800,315,810,320);\r\n}\r\n\r\n\r\nvoid drawWarrior(){\r\n  beginShape();\r\n  vertex(770,270);\r\n  vertex(760,230);\r\n  vertex(820,260);\r\n  endShape(CLOSE);\r\n  beginShape();\r\n  vertex(840,270);\r\n  vertex(890,260);\r\n  vertex(860,300);\r\n  endShape(CLOSE);\r\n  beginShape();\r\n  vertex(850,270);\r\n  vertex(870,270);\r\n  vertex(840,320);\r\n  endShape(CLOSE);\r\n  beginShape();\r\n  vertex(775,270);\r\n  vertex(773,245);\r\n  vertex(800,260);\r\n  endShape(CLOSE);\r\n  beginShape();\r\n  vertex(770,330);\r\n  vertex(790,370);\r\n  vertex(810,330);\r\n  endShape(CLOSE);\r\n  beginShape();\r\n  vertex(810,330);\r\n  vertex(830,370);\r\n  vertex(850,330);\r\n  endShape(CLOSE);\r\n  beginShape();\r\n  vertex(850,320);\r\n  vertex(940,270);\r\n  vertex(960,290);\r\n  vertex(950,290);\r\n  vertex(940,280);\r\n  vertex(860,320);\r\n  endShape(CLOSE);\r\n  ellipse(810,300,100,100);\r\n  beginShape();\r\n  vertex(740,280);\r\n  vertex(780,280);\r\n  vertex(770,300);\r\n  vertex(760,290);\r\n  vertex(750,300);\r\n  endShape(CLOSE);\r\n  beginShape();\r\n  vertex(840,300);\r\n  vertex(880,300);\r\n  vertex(870,320);\r\n  vertex(860,310);\r\n  vertex(850,320);\r\n  endShape(CLOSE);\r\n  line(785,295,790,300);\r\n  line(790,300,795,295);\r\n  line(795,295,800,300);\r\n  line(800,300,805,295);\r\n  line(805,295,810,300);\r\n  line(810,300,815,295);\r\n  line(815,295,820,300);\r\n  line(820,300,825,295);\r\n  fill(0);\r\n  beginShape();\r\n  vertex(790,275);\r\n  vertex(795,265);\r\n  vertex(800,275);\r\n  endShape(CLOSE);\r\n  beginShape();\r\n  vertex(830,285);\r\n  vertex(835,275);\r\n  vertex(840,285);\r\n  endShape(CLOSE);\r\n}\r\n\r\nvoid drawDefender(){\r\n  beginShape();\r\n  vertex(740,235);\r\n  vertex(765,175);\r\n  vertex(790,235);\r\n  endShape(CLOSE);\r\n  ellipse(765,265,100,100);\r\n  beginShape();\r\n  vertex(800,315);\r\n  vertex(830,285);\r\n  vertex(830,315);\r\n  endShape(CLOSE);\r\n  ellipse(810,325,50,50);\r\n  beginShape();\r\n  vertex(840,325);\r\n  vertex(870,290);\r\n  vertex(880,325);\r\n  endShape(CLOSE);\r\n  ellipse(860,330,50,50);\r\n  beginShape();\r\n  vertex(900,330);\r\n  vertex(935,320);\r\n  vertex(930,350);\r\n  endShape(CLOSE);\r\n  ellipse(905,350,50,50);\r\n  beginShape();\r\n  vertex(915,389);\r\n  vertex(930,410);\r\n  vertex(885,413);\r\n  endShape(CLOSE);\r\n  ellipse(895,395,40,40);\r\n  beginShape();\r\n  vertex(872,410);\r\n  vertex(845,415);\r\n  vertex(872,425);\r\n  endShape(CLOSE);\r\n  ellipse(872,415,20,20);\r\n  fill(0);\r\n  ellipse(738,245,20,20);\r\n  ellipse(788,245,20,20);\r\n  line(750,275,770,275);\r\n  line(770,275,774,270);\r\n}\r\n\r\nvoid drawWizard(){\r\n  beginShape();\r\n  vertex(810,280);\r\n  vertex(730,260);\r\n  vertex(700,280);\r\n  vertex(700,300);\r\n  vertex(730,320);\r\n  vertex(810,310);\r\n  endShape(CLOSE);\r\n  line(700,280,810,295);\r\n  line(700,300,810,295);\r\n  beginShape();\r\n  vertex(810,280);\r\n  vertex(890,260);\r\n  vertex(920,280);\r\n  vertex(920,300);\r\n  vertex(890,320);\r\n  vertex(810,310);\r\n  endShape(CLOSE);\r\n  line(920,280,810,295);\r\n  line(920,300,810,295);\r\n  ellipse(750,300,20,10);\r\n  ellipse(870,300,20,10);\r\n  ellipse(811,205,20,20);\r\n  beginShape();\r\n  vertex(770,290);\r\n  vertex(810,210);\r\n  vertex(850,290);\r\n  endShape(CLOSE);\r\n  ellipse(810,300,100,100);\r\n  ellipse(780,350,20,10);\r\n  ellipse(840,350,20,10);\r\n  fill(0);\r\n  ellipse(795,280,20,20);\r\n  ellipse(825,280,20,20);\r\n  line(800,300,810,300);\r\n  line(810,300,815,295);\r\n}\r\n\r\nvoid drawMonster(){\r\n  fill(238,207,161);\r\n  noStroke();\r\n  rect(0,48,360,465);\r\n  stroke(0);\r\n  strokeWeight(2);\r\n  fill(255,150,0);\r\n  \/\/wings\r\n  drawWings(0);\r\n  \/\/tails\r\n  drawRTails(0);\r\n  if(tails >= 1)\r\n    drawLTails(1);\r\n   \/\/heads\r\n  drawHeads(0);\r\n  \/\/arms\r\n  drawRArms(0);\r\n  if(arms >= 1)\r\n    drawLArms(1);\r\n  drawLegs(0);\r\n  \/\/leges\r\n  drawLegs(0);\r\n  \/\/belly\r\n  ellipse(150,270,120,170);\r\n  line(90,270,100,260);\r\n  line(100,260,110,275);\r\n  line(110,275,115,263);\r\n  line(115,263,120,280);\r\n  \r\n  line(92,250,102,240);\r\n  line(102,240,112,255);\r\n  line(112,255,117,243);\r\n  line(117,243,124,260);\r\n  \r\n  line(92,290,102,280);\r\n  line(102,280,112,295);\r\n  line(112,295,117,283);\r\n  line(117,283,122,300);\r\n  \r\n  line(210,270,200,260);\r\n  line(200,260,190,275);\r\n  line(190,275,185,263);\r\n  line(185,263,180,280);\r\n}\r\n\r\nvoid drawRArms(int arm){\r\n  int d = arm * 20;\r\n  beginShape();\r\n  vertex(120,230 + d);\r\n  vertex(80,200 + d);\r\n  vertex(40,200 + d);\r\n  vertex(40,220 + d);\r\n  vertex(80,220 + d);\r\n  vertex(120,250 + d);\r\n  endShape(CLOSE);\r\n  ellipse(40,210 + d,30,30);\r\n  if(arm == 0 && arms >= 2)\r\n    drawRArms(2);\r\n  if(arm == 2 && arms >= 4)\r\n    drawRArms(4);\r\n}\r\n\r\nvoid drawLArms(int arm){\r\n  int d = (arm - 1) * 20;\r\n  beginShape();\r\n  vertex(180,230 + d);\r\n  vertex(220,200 + d);\r\n  vertex(260,200 + d);\r\n  vertex(260,220 + d);\r\n  vertex(220,220 + d);\r\n  vertex(180,250 + d);\r\n  endShape(CLOSE);\r\n  ellipse(260,210 + d,30,30);\r\n  if(arm == 1 && arms >= 3)\r\n    drawLArms(3);\r\n  if(arm == 3 && arms >= 5)\r\n    drawLArms(5);\r\n  }\r\n \r\n void drawLegs(int leg){\r\n   int d = leg * 30;\r\n   if(leg == 1 || leg == 3 || leg == 5){\r\n     fill(0);\r\n   }\r\n   beginShape();\r\n   vertex(120,330 + d);\r\n   vertex(90,340 + d);\r\n   vertex(120,360 + d);\r\n   vertex(140,360 + d);\r\n   vertex(110,340 + d);\r\n   vertex(140,330 + d);\r\n   endShape(CLOSE);\r\n   \r\n   beginShape();\r\n   vertex(180,330 + d);\r\n   vertex(210,340 + d);\r\n   vertex(180,360 + d);\r\n   vertex(160,360 + d);\r\n   vertex(190,340 + d);\r\n   vertex(160,330 + d);\r\n   endShape(CLOSE);\r\n   fill(255,150,0);\r\n   if(leg < legs){\r\n     leg++;\r\n     drawLegs(leg);\r\n   }\r\n }\r\n \r\n void drawRTails(int tail){\r\n  int d = tail * 20;\r\n  int d2 = 0;\r\n  if(tail == 2)\r\n    d2 = 6;\r\n  if(tail == 4)\r\n    d2 = 30;\r\n  beginShape();\r\n  vertex(92 + d2,252 + d);\r\n  vertex(60 + d2,170 + d);\r\n  vertex(50 + d2,200 + d);\r\n  vertex(40 + d2,150 +d);\r\n  vertex(5 + d2,230 + d);\r\n  vertex(7 + d2, 235 + d);\r\n  vertex(40 + d2,170  + d);\r\n  vertex(50 + d2,220 + d);\r\n  vertex(60 + d2,190 + d);\r\n  vertex(92 + d2,272 + d);\r\n  endShape(CLOSE);\r\n  if(tail == 0 && tails >= 2)\r\n    drawRTails(2);\r\n  if(tail == 2 && tails >= 4)\r\n    drawRTails(4);\r\n}\r\n\r\nvoid drawLTails(int tail){\r\n  int d = (tail - 1) * 20;\r\n  int d2 = 0;\r\n  if(tail == 3)\r\n    d2 = 6;\r\n  if(tail == 5)\r\n    d2 = 30;\r\n  beginShape();\r\n  vertex(208 - d2,252 + d);\r\n  vertex(240 - d2,170 + d);\r\n  vertex(250 - d2,200 + d);\r\n  vertex(260 - d2,150 +d);\r\n  vertex(295 - d2,230 + d);\r\n  vertex(293 - d2, 235 + d);\r\n  vertex(263 - d2,170  + d);\r\n  vertex(253 - d2,220 + d);\r\n  vertex(243 - d2,190 + d);\r\n  vertex(208 - d2,272 + d);\r\n  endShape(CLOSE);\r\n  if(tail == 1 && tails >= 3)\r\n    drawLTails(3);\r\n  if(tail == 3 && tails >= 5)\r\n    drawLTails(5);\r\n  }\r\n  \r\n  void drawHeads(int head){\r\n   int d = 0;\r\n   int d2 = 0;\r\n   if(head == 1){\r\n     d = -40;\r\n     d2 = 15;\r\n   }\r\n   if(head == 2){\r\n     d+= 40;\r\n     d2 = 15;\r\n   }\r\n   if(head == 3){\r\n     d -=40;\r\n     d2-=35;\r\n   }\r\n   if(head == 4){\r\n     d +=40;\r\n     d2-=35;\r\n   }\r\n   if(head == 5){\r\n     d2-=50;\r\n   }\r\n   beginShape();\r\n   vertex(140+ d,185 + d2);\r\n   vertex(130 + d,165 + d2);\r\n   vertex(130 + d,135 + d2);\r\n   vertex(170 + d,135 + d2);\r\n   vertex(170 + d,165 + d2);\r\n   vertex(160 + d,185 + d2);\r\n   endShape(CLOSE);\r\n   fill(255);\r\n   ellipse(140+ d,145 + d2,10,10);\r\n   ellipse(160+ d,145 + d2,10,10);\r\n   if(eyes >= 1){\r\n     ellipse(150 + d, 145 + d2,10,10);\r\n      for (int i = 2;i < 6 && i <= eyes; i++){\r\n        if(i<5)\r\n          ellipse(140 + (10 * (i - 2)) + d, 155+ d2,10,10);\r\n        else\r\n          ellipse(150+d,165 + d2,10,10);\r\n      }\r\n   }\r\n   fill(0);\r\n   ellipse(140+ d,147 + d2,5,5);\r\n   ellipse(160+ d,147 + d2,5,5);\r\n   if(eyes >= 1){\r\n     ellipse(150 + d, 147 + d2,5,5);\r\n     for(int i = 2; i <= eyes && i < 6; i++){\r\n        if(i<5)\r\n          ellipse(140 + (10 * (i - 2)) + d, 157+ d2,5,5);\r\n        else\r\n          ellipse(150+d,167 + d2,5,5);\r\n      }\r\n   }\r\n   line(145+d,175+d2,160+d,172+d2);\r\n   line(160+d,172+d2,162+d,170+d2);\r\n   fill(255,150,0);\r\n   if(head < heads){\r\n     head++;\r\n     drawHeads(head);\r\n   }\r\n }\r\n   \r\nvoid drawWings(int wing){\r\n  strokeWeight(7);\r\n  stroke(0);\r\n  if(wing == 0){\r\n    line(145,190,145,50);\r\n    line(145,50,115,80);\r\n    line(145,80,115,110);\r\n    line(145, 110,115,140);\r\n    strokeWeight(3);\r\n    stroke(255,150,0);\r\n    line(145,190,145,50);\r\n    line(145,50,115,80);\r\n    line(145,80,115,110);\r\n    line(145, 110,115,140);\r\n  }\r\n  if(wing == 1){\r\n    line(155,190,155,50);\r\n    line(155,50,185,80);\r\n    line(155,80,185,110);\r\n    line(155, 110,185,140);\r\n  }\r\n  if(wing ==2 || wing == 4){\r\n    int d = 0;\r\n    int d2 = 0;\r\n    if(wing ==4){\r\n      d = -10;\r\n      d2 = 50;\r\n    }\r\n    line(150+d,190+d2, 50+d,90+d2);\r\n    line(50+d,90+d2,30+d,120+d2);\r\n    line(65+d,105+d2, 45+d,135+d2);\r\n    line(80+d,120+d2, 60+d,150+d2);\r\n    if(wing==4){\r\n      strokeWeight(2);\r\n      stroke(255,150,0);\r\n      line(150+d,190+d2, 50+d,90+d2);\r\n      line(50+d,90+d2,30+d,120+d2);\r\n      line(65+d,105+d2, 45+d,135+d2);\r\n      line(80+d,120+d2, 60+d,150+d2);\r\n    }\r\n  }\r\n  if(wing==3 || wing == 5){\r\n    int d = 0;\r\n    int d2 = 0;\r\n    if(wing ==5){\r\n      d = 10;\r\n      d2 = 50;\r\n    }\r\n    line(150+d,190+d2, 250+d,90+d2);\r\n    line(250+d,90+d2,270+d,120+d2);\r\n    line(235+d,105+d2, 255+d,135+d2);\r\n    line(220+d,120+d2, 240+d,150+d2);\r\n    if(wing == 3){\r\n      strokeWeight(2);\r\n      stroke(255,150,0);\r\n      line(150+d,190+d2, 250+d,90+d2);\r\n      line(250+d,90+d2,270+d,120+d2);\r\n      line(235+d,105+d2, 255+d,135+d2);\r\n      line(220+d,120+d2, 240+d,150+d2);\r\n    }\r\n  }\r\n  strokeWeight(1);\r\n  stroke(0);\r\n  wing++;\r\n  if(wing <= wings){\r\n    drawWings(wing);\r\n  }\r\n}\r\n<\/script><br \/>\nOn a random note my program is exactly 777 lines long at this point. Just thought that was funny.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The monster is fully made. I do not yet limit the amount of total limbs you can choose so you can add up to 5 more of each part onto the base monster. This is a picture of him with &hellip; <a href=\"https:\/\/www.joshuarosenstock.com\/teaching\/IMGD3x00_B12\/2012\/12\/12\/final-project-post-5-monster-art-finished-on-processing\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":12,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/www.joshuarosenstock.com\/teaching\/IMGD3x00_B12\/wp-json\/wp\/v2\/posts\/925"}],"collection":[{"href":"https:\/\/www.joshuarosenstock.com\/teaching\/IMGD3x00_B12\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.joshuarosenstock.com\/teaching\/IMGD3x00_B12\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.joshuarosenstock.com\/teaching\/IMGD3x00_B12\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.joshuarosenstock.com\/teaching\/IMGD3x00_B12\/wp-json\/wp\/v2\/comments?post=925"}],"version-history":[{"count":2,"href":"https:\/\/www.joshuarosenstock.com\/teaching\/IMGD3x00_B12\/wp-json\/wp\/v2\/posts\/925\/revisions"}],"predecessor-version":[{"id":932,"href":"https:\/\/www.joshuarosenstock.com\/teaching\/IMGD3x00_B12\/wp-json\/wp\/v2\/posts\/925\/revisions\/932"}],"wp:attachment":[{"href":"https:\/\/www.joshuarosenstock.com\/teaching\/IMGD3x00_B12\/wp-json\/wp\/v2\/media?parent=925"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.joshuarosenstock.com\/teaching\/IMGD3x00_B12\/wp-json\/wp\/v2\/categories?post=925"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.joshuarosenstock.com\/teaching\/IMGD3x00_B12\/wp-json\/wp\/v2\/tags?post=925"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}