// DANIEL RULES! // Code updated 5/12/06 import java.awt.*; import java.applet.*; import javax.swing.*; public class gfxProj extends Applet { int appWidth; int appHeight; Image virtualMem; Graphics gB; Graphics gC; int xCoord, yCoord; public void init() { appWidth = getWidth(); appHeight = getHeight(); virtualMem = createImage(appWidth,appHeight); gB = virtualMem.getGraphics(); } public void paint(Graphics g) { // Initialize vars AudioClip thankGod = getAudioClip(getCodeBase(), "thankgod.wav"); AudioClip ohNo = getAudioClip(getCodeBase(), "ohno.wav"); AudioClip stewie = getAudioClip(getCodeBase(), "stewie.wav"); Image decal; boolean firstTime = true; final int aniX = 300; do { // Intro // createBackground(appWidth, appHeight, g); drawChris(400,675,g); decal = getImage(getDocumentBase(), "familyguy.jpg"); gB.drawImage(decal,367,298,this); g.drawImage (virtualMem,0,0, this); thankGod.play(); // 5.3 Long delay(5400); // 6.5 Sec Wait ohNo.play(); // 1.1 Long delay(500); // .9 Sec Wait // Main Picture // for(int k = 0; k < aniX; k+=10) { createBackground(appWidth,appHeight,g); drawChris(400-k,635-k,g); drawEvilMonkey(613+aniX-k,0,g); drawStairs(400+aniX-k,-315,g); drawPicture(400+aniX-k,100,"pic1.jpg",g); // Left most drawPicture(610+aniX-k,260,"fg.jpg",g); // Middle drawPicture(810+aniX-k,422,"pic2.jpg",g); // Right most gB.setColor(Color.black); gB.drawRect(395,appHeight,5,appHeight); g.drawImage (virtualMem,0,0, this); } // Image snapshot; // snapshot = createImage(appWidth,appHeight); // gB = virtualMem.getGraphics(); // Stewie // delay(700); for(int q = 0; q < aniX; q+=10) { createStuBackground(appWidth,appHeight,g); drawStewie(800+aniX-q,600,g); g.drawImage(virtualMem,0,0, this); } delay(400); stewie.play(); // Plays for 5.4s delay(9000); firstTime = false; } while(firstTime); g.setColor(Color.red); g.drawString("Mouse clicked at (" + xCoord + "," + yCoord + ")",600,20); } public boolean mouseDown(Event e, int x, int y) { xCoord = x; yCoord = y; repaint(); return true; } public void drawEvilMonkey(int x, int y, Graphics g) // s is SIZE { Color fur = new Color(115,93,49); Color skin = new Color(214,190,165); /*gB.setColor(fur); gB.drawArc(x,y,10,10,0,360); gB.setColor(Color.red); gB.drawLine(x+120,y,x+90,y+20); // Left hand gB.setColor(fur); gB.fillArc(x+192, y+217,20,20,85,30); gB.fillOval(x+152,y+190,50,50); // Right Leg gB.setColor(skin);*/ Polygon leftH = new Polygon(); leftH.addPoint(x+73,0+y); leftH.addPoint(x+66,7+y); leftH.addPoint(x+73,8+y); leftH.addPoint(x+71,11+y); leftH.addPoint(x+72,18+y); leftH.addPoint(x+80,20+y); leftH.addPoint(x+77,22+y); leftH.addPoint(x+84,24+y); leftH.addPoint(x+105,8+y); leftH.addPoint(x+107,4+y); leftH.addPoint(x+107,1+y); leftH.addPoint(x+106,0+y); gB.setColor(skin); gB.fillPolygon(leftH); gB.setColor(Color.black); gB.drawPolygon(leftH); Polygon leftA = new Polygon(); leftA.addPoint(x+67,3+y); leftA.addPoint(x+68,0+y); leftA.addPoint(x+59,5+y); leftA.addPoint(x+54,8+y); leftA.addPoint(x+46,12+y); leftA.addPoint(x+36,16+y); leftA.addPoint(x+26,22+y); leftA.addPoint(x+22,26+y); leftA.addPoint(x+21,30+y); leftA.addPoint(x+22,30+y); leftA.addPoint(x+24,40+y); leftA.addPoint(x+27,36+y); leftA.addPoint(x+30,43+y); leftA.addPoint(x+34,48+y); leftA.addPoint(x+43,55+y); leftA.addPoint(x+52,62+y); leftA.addPoint(x+64,68+y); leftA.addPoint(x+74,73+y); leftA.addPoint(x+82,76+y); leftA.addPoint(x+82,79+y); leftA.addPoint(x+68,103+y); leftA.addPoint(x+61,97+y); leftA.addPoint(x+54,93+y); leftA.addPoint(x+42,91+y); //around left leg leftA.addPoint(x+36,92+y); leftA.addPoint(x+31,93+y); leftA.addPoint(x+22,99+y); leftA.addPoint(x+28,99+y); leftA.addPoint(x+22,105+y); leftA.addPoint(x+19,111+y); leftA.addPoint(x+18,121+y); leftA.addPoint(x+18,125+y); leftA.addPoint(x+19,131+y); leftA.addPoint(x+22,140+y); leftA.addPoint(x+24,144+y); leftA.addPoint(x+29,145+y); leftA.addPoint(x+33,147+y); leftA.addPoint(x+38,149+y); // around foot leftA.addPoint(x+45,146+y); leftA.addPoint(x+52,146+y); leftA.addPoint(x+55,148+y); leftA.addPoint(x+81,136+y);//* leftA.addPoint(x+68,134+y); leftA.addPoint(x+91,121+y); leftA.addPoint(x+91,44+y); leftA.addPoint(x+85,43+y); leftA.addPoint(x+79,39+y); leftA.addPoint(x+73,34+y); leftA.addPoint(x+83,25+y); leftA.addPoint(x+81,23+y); gB.setColor(fur); gB.fillPolygon(leftA); gB.setColor(Color.black); gB.drawPolygon(leftA); gB.setColor(Color.black); gB.drawLine(x+72,y+139,x+73,133+y); // leg crease gB.drawLine(x+73,y+133,x+74,119+y); gB.drawLine(x+74,y+119,x+73,112+y); gB.drawLine(x+73,y+112,x+69,106+y); Polygon rightAB = new Polygon(); rightAB.addPoint(x+91,120+y); rightAB.addPoint(x+69,132+y); rightAB.addPoint(x+85,136+y); rightAB.addPoint(x+76,144+y); rightAB.addPoint(x+91,140+y); gB.setColor(fur); gB.fillPolygon(rightAB); gB.setColor(Color.black); gB.drawPolygon(rightAB); Polygon earL = new Polygon(); earL.addPoint(x+91,22+y); earL.addPoint(x+87,25+y); earL.addPoint(x+84,30+y); earL.addPoint(x+85,36+y); earL.addPoint(x+88,41+y); earL.addPoint(x+91,43+y); gB.setColor(skin); gB.fillPolygon(earL); gB.setColor(Color.black); gB.drawPolygon(earL); Polygon footarmL = new Polygon(); footarmL.addPoint(x+82,135+y); footarmL.addPoint(x+56,147+y); footarmL.addPoint(x+48,146+y); footarmL.addPoint(x+43,148+y); footarmL.addPoint(x+38,150+y); footarmL.addPoint(x+24,143+y); footarmL.addPoint(x+21,146+y); footarmL.addPoint(x+11,146+y); footarmL.addPoint(x+5,149+y); footarmL.addPoint(x+4,150+y); footarmL.addPoint(x+3,152+y); footarmL.addPoint(x+6,154+y); footarmL.addPoint(x+90,154+y); footarmL.addPoint(x+92,143+y); footarmL.addPoint(x+91,140+y); footarmL.addPoint(x+77,144+y); footarmL.addPoint(x+83,136+y); gB.setColor(skin); gB.fillPolygon(footarmL); gB.setColor(Color.black); gB.drawPolygon(footarmL); gB.drawLine(x+56,y+147,x+41,y+153); Polygon top = new Polygon(); top.addPoint(x+176,5+y); top.addPoint(x+170,0+y); top.addPoint(x+125,0+y); top.addPoint(x+117,4+y); top.addPoint(x+104,14+y); top.addPoint(x+106,15+y); top.addPoint(x+103,21+y); top.addPoint(x+103,25+y); top.addPoint(x+105,30+y); top.addPoint(x+141,39+y); top.addPoint(x+147,23+y); top.addPoint(x+177,6+y); gB.setColor(fur); gB.fillPolygon(top); gB.setColor(Color.black); gB.drawPolygon(top); Polygon faceT = new Polygon(); faceT.addPoint(x+117,28+y); faceT.addPoint(x+120,15+y); faceT.addPoint(x+127,5+y); faceT.addPoint(x+132,0+y); faceT.addPoint(x+150,0+y); faceT.addPoint(x+154,3+y); faceT.addPoint(x+160,6+y); faceT.addPoint(x+165,7+y); faceT.addPoint(x+170,7+y); faceT.addPoint(x+178,6+y); faceT.addPoint(x+189,14+y); faceT.addPoint(x+191,22+y); faceT.addPoint(x+189,31+y); faceT.addPoint(x+186,39+y); faceT.addPoint(x+147,61+y); gB.setColor(skin); gB.fillPolygon(faceT); gB.setColor(Color.black); gB.drawPolygon(faceT); gB.setColor(Color.white); //eyes gB.fillOval(128+x,10+y,25,25); gB.setColor(Color.black); gB.drawOval(128+x,10+y,25,25); gB.setColor(Color.white); //eyes gB.fillOval(165+x,20+y,25,20); gB.setColor(Color.black); gB.drawOval(165+x,20+y,25,20); //pupil gB.setColor(Color.black); gB.fillOval(131+x,21+y,5,5); //L gB.fillOval(171+x,34+y,5,5); //R Polygon eyelidL = new Polygon(); eyelidL.addPoint(x+128,27+y); eyelidL.addPoint(x+127,24+y); eyelidL.addPoint(x+127,21+y); eyelidL.addPoint(x+136,26+y); eyelidL.addPoint(x+140,28+y); eyelidL.addPoint(x+146,34+y); eyelidL.addPoint(x+135,36+y); //** gB.setColor(skin); gB.fillPolygon(eyelidL); gB.setColor(Color.black); gB.drawPolygon(eyelidL); Polygon eyelidR = new Polygon(); eyelidR.addPoint(x+173,40+y); eyelidR.addPoint(x+167,37+y); eyelidR.addPoint(x+184,36+y); eyelidR.addPoint(x+181,39+y); eyelidR.addPoint(x+175,46+y); //** gB.setColor(skin); gB.fillPolygon(eyelidR); gB.setColor(Color.black); gB.drawPolygon(eyelidR); Polygon faceB = new Polygon(); faceB.addPoint(x+102,32+y); faceB.addPoint(x+111,30+y); faceB.addPoint(x+117,28+y); //** faceB.addPoint(x+126,28+y); faceB.addPoint(x+135,30+y); faceB.addPoint(x+141,32+y); faceB.addPoint(x+149,37+y); faceB.addPoint(x+172,41+y); faceB.addPoint(x+178,40+y); faceB.addPoint(x+182,40+y); faceB.addPoint(x+189,41+y); faceB.addPoint(x+194,46+y); faceB.addPoint(x+197,49+y); faceB.addPoint(x+197,64+y); faceB.addPoint(x+190,74+y); faceB.addPoint(x+189,71+y); faceB.addPoint(x+189,76+y); faceB.addPoint(x+188,83+y); faceB.addPoint(x+183,89+y); faceB.addPoint(x+177,91+y); faceB.addPoint(x+169,90+y); faceB.addPoint(x+158,85+y); faceB.addPoint(x+152,88+y); faceB.addPoint(x+145,88+y); faceB.addPoint(x+137,89+y); faceB.addPoint(x+130,87+y); faceB.addPoint(x+123,83+y); faceB.addPoint(x+112,86+y); faceB.addPoint(x+108,86+y); faceB.addPoint(x+105,85+y); faceB.addPoint(x+102,84+y); gB.setColor(skin); gB.fillPolygon(faceB); gB.setColor(Color.black); gB.drawPolygon(faceB); gB.setColor(Color.black); // L brow gB.drawLine(x+135,y+7,x+142,7+y); gB.drawLine(x+142,y+7,x+145,9+y); gB.drawLine(x+145,y+9,x+149,13+y); gB.drawLine(x+149,y+13,x+151,18+y); gB.drawLine(x+151,y+18,x+155,19+y); gB.drawLine(x+155,y+19,x+160,18+y); gB.drawLine(x+160,y+18,x+162,14+y); gB.drawLine(x+163,y+21,x+166,23+y); gB.drawLine(x+166,y+23,x+173,19+y); gB.drawLine(x+173,y+19,x+179,17+y); gB.drawLine(x+179,y+17,x+184,17+y); Polygon mouth = new Polygon(); mouth.addPoint(x+153,52+y); mouth.addPoint(x+169,56+y); mouth.addPoint(x+183,67+y); mouth.addPoint(x+184,76+y); mouth.addPoint(x+179,85+y); mouth.addPoint(x+174,85+y); mouth.addPoint(x+163,82+y); mouth.addPoint(x+155,80+y); mouth.addPoint(x+142,78+y); mouth.addPoint(x+130,79+y); mouth.addPoint(x+117,81+y); mouth.addPoint(x+107,80+y); mouth.addPoint(x+105,72+y); mouth.addPoint(x+108,67+y); mouth.addPoint(x+119,57+y); mouth.addPoint(x+136,52+y); gB.setColor(Color.white); gB.fillPolygon(mouth); gB.setColor(Color.black); gB.drawPolygon(mouth); gB.setColor(Color.black); // teeth gB.drawLine(x+107,y+67,x+115,80+y); gB.drawLine(x+115,y+80,x+120,57+y); gB.drawLine(x+120,y+57,x+130,79+y); gB.drawLine(x+130,y+79,x+137,52+y); gB.drawLine(x+137,y+52,x+142,76+y); gB.drawLine(x+142,y+76,x+153,52+y); gB.drawLine(x+153,y+52,x+156,68+y); gB.drawLine(x+156,y+68,x+154,78+y); gB.drawLine(x+154,y+78,x+170,57+y); gB.drawLine(x+170,y+57,x+164,82+y); gB.drawLine(x+164,y+82,x+182,68+y); gB.drawLine(x+182,y+68,x+175,85+y); Polygon nose = new Polygon(); gB.drawLine(x+145,y+35,x+148,42+y); gB.drawLine(x+148,y+42,x+156,42+y); gB.drawLine(x+156,y+42,x+160,46+y); gB.drawLine(x+160,y+46,x+172,45+y); gB.drawLine(x+172,y+45,x+173,41+y); gB.drawLine(x+173,y+41,x+174,41+y); Polygon chest = new Polygon(); chest.addPoint(x+123,83+y); chest.addPoint(x+112,89+y); chest.addPoint(x+115,90+y); chest.addPoint(x+103,95+y); chest.addPoint(x+103,116+y); chest.addPoint(x+155,91+y); chest.addPoint(x+151,87+y); gB.setColor(skin); gB.fillPolygon(chest); gB.setColor(Color.black); gB.drawPolygon(chest); Polygon chest2 = new Polygon(); chest2.addPoint(x+103,84+y); chest2.addPoint(x+103,96+y); chest2.addPoint(x+123,83+y); chest2.addPoint(x+112,85+y); chest2.addPoint(x+106,85+y); gB.setColor(fur); gB.fillPolygon(chest2); gB.setColor(Color.black); gB.drawPolygon(chest2); Polygon footR = new Polygon(); footR.addPoint(x+115,188+y); footR.addPoint(x+109,191+y); footR.addPoint(x+105,195+y); footR.addPoint(x+104,196+y); footR.addPoint(x+104,206+y); footR.addPoint(x+110,215+y); footR.addPoint(x+110,223+y); footR.addPoint(x+115,232+y); footR.addPoint(x+114,232+y); // 1st footR.addPoint(x+157,232+y); // 2nd footR.addPoint(x+170,232+y); footR.addPoint(x+172,225+y); footR.addPoint(x+169,221+y); footR.addPoint(x+163,219+y); footR.addPoint(x+155,217+y); footR.addPoint(x+148,214+y); footR.addPoint(x+145,210+y); footR.addPoint(x+140,181+y); //arb point gB.setColor(skin); gB.fillPolygon(footR); gB.setColor(Color.black); gB.drawPolygon(footR); gB.setColor(Color.black); gB.drawLine(x+144,y+232,x+146,y+225); gB.drawLine(x+146,y+225,x+142,y+222); gB.drawLine(x+142,y+222,x+128,y+219); gB.drawLine(x+128,y+219,x+122,y+215); gB.drawLine(x+157,y+232,x+155,y+225); gB.drawLine(x+155,y+225,x+155,y+222); gB.drawLine(x+155,y+222,x+149,y+220); gB.drawLine(x+149,y+220,x+144,y+218); Polygon armR = new Polygon(); armR.addPoint(x+152,88+y); armR.addPoint(x+152,92+y); armR.addPoint(x+103,117+y); armR.addPoint(x+103,143+y); armR.addPoint(x+104,143+y); armR.addPoint(x+104,153+y); armR.addPoint(x+111,150+y); armR.addPoint(x+107,156+y); armR.addPoint(x+107,163+y); armR.addPoint(x+104,164+y); armR.addPoint(x+104,169+y); armR.addPoint(x+111,174+y); armR.addPoint(x+115,186+y); // ** armR.addPoint(x+116,191+y); armR.addPoint(x+113,194+y); armR.addPoint(x+118,196+y); armR.addPoint(x+120,205+y); armR.addPoint(x+123,201+y); armR.addPoint(x+127,209+y); armR.addPoint(x+136,211+y); armR.addPoint(x+134,209+y); armR.addPoint(x+144,209+y); armR.addPoint(x+158,210+y); armR.addPoint(x+169,201+y); armR.addPoint(x+171,193+y); armR.addPoint(x+174,197+y); armR.addPoint(x+175,182+y); armR.addPoint(x+168,167+y); armR.addPoint(x+157,155+y); armR.addPoint(x+148,145+y); armR.addPoint(x+145,137+y); armR.addPoint(x+170,114+y); armR.addPoint(x+177,105+y); armR.addPoint(x+178,97+y); armR.addPoint(x+175,90+y); gB.setColor(fur); gB.fillPolygon(armR); gB.setColor(Color.black); gB.drawPolygon(armR); gB.drawLine(x+107,y+156,x+142,y+138); } public void drawStewie(int shiftRight, int shiftDown, Graphics g) { int x = shiftRight; int y = shiftDown; Color shoes = new Color(183,206,238); Color pants = new Color(198,9,67); Color clothes = new Color(251,217,127); Color skin = new Color(244,209,177); Color tongue = new Color(186,114,134); Color button = new Color(252,255,127); gB.setColor(shoes); gB.fillOval(x+60,y+184,47,23); gB.fillOval(x+168,y+166,23,35); gB.setColor(pants); //pants gB.fillRoundRect(x+70,y+159,37,33,10,10); gB.fillOval(x+145,y+160,43,31); gB.setColor(Color.black); gB.drawRoundRect(x+70,y+159,37,33,10,10); gB.setColor(shoes); gB.fillOval(x+148,y+186,38,20); gB.setColor(pants); gB.fillOval(x+137,y+150,36,35); gB.fillOval(x+127,y+133,38,49); gB.fillOval(x+86,y+128,29,59); gB.fillOval(x+91,y+131,70,48); gB.fillArc(x+77,y+110,74,60,180,180); gB.setColor(clothes); gB.fillOval(x+80,y+110,34,30); gB.fillOval(x+119,y+128,32,15); gB.fillOval(x+114,y+109,37,27); gB.fillOval(x+135,y+109,44,22); gB.fillOval(x+40,y+101,69,33); gB.setColor(skin); gB.fillOval(x+164,y+111,23,21); gB.fillOval(x+170,y+125,10,11); gB.fillOval(x+177,y+124,9,9); gB.fillOval(x+179,y+117,9,10); gB.fillOval(x+177,y+112,9,15); gB.fillOval(x+29,y+103,21,21); gB.fillOval(x+21,y+91,31,15); gB.fillOval(x+24,y+103,15,14); gB.fillOval(x+22,y+114,15,10); gB.setColor(clothes); gB.fillOval(x+162,y+111,13,20); gB.setColor(pants); gB.fillRect(x+110,y+115,12,30); gB.fillRect(x+77,y+114,12,30); gB.setColor(button); gB.fillOval(x+77,y+129,15,14); gB.fillOval(x+111,y+130,13,14); gB.setColor(Color.black); //shoe outline gB.drawArc(x+60,y+184,47,23,145,230); gB.drawArc(x+148,y+186,38,20,80,265); gB.drawArc(x+168,y+166,23,35,-65,110); gB.drawArc(x+162,y+111,13,20,60,-120); gB.drawArc(x+170,y+125,10,11,180,180); gB.drawArc(x+177,y+124,9,10,-90,100); gB.drawArc(x+179,y+117,9,10,90,-180); gB.drawArc(x+177,y+112,9,15,0,90); gB.drawLine(x+170,y+110,x+180,y+110); gB.drawArc(x+29,y+103,21,21,40,-140); gB.drawArc(x+21,y+91,31,15,140,120); gB.drawArc(x+24,y+103,15,14,115,180); gB.drawArc(x+22,y+114,15,10,150,180); gB.drawArc(x+32,y+103,15,12,90,190); gB.drawOval(x+77,y+129,15,14); gB.drawOval(x+111,y+130,13,14); gB.drawArc(x+137,y+150,36,35,20,40); gB.drawArc(x+127,y+133,38,49,10,60); gB.drawArc(x+86,y+128,29,59,-60,20); gB.drawArc(x+91,y+131,70,48,230,70); gB.drawArc(x+77,y+110,74,60,180,40); gB.drawArc(x+145,y+160,43,31,75,-130); gB.drawArc(x+80,y+177,77,34,30,30); gB.setColor(skin); gB.fillOval(x+7,y+7,177,112); gB.setColor(Color.black); gB.drawOval(x+7,y+7,177,112); gB.fillArc(x+69,y+76,33,23,90,-115); gB.drawArc(x+69,y+76,33,23,-25,135); gB.drawLine(x+85,y+86,x+87,y+91); gB.drawLine(x+85,y+74,x+80,y+76); gB.setColor(tongue); gB.fillOval(x+92,y+84,10,8); gB.setColor(skin); gB.fillOval(x+180,y+48,16,16); gB.fillOval(x+1,y+65,18,17); gB.setColor(Color.black); gB.drawArc(x+180,y+48,16,16,-120,240); gB.drawArc(x+1,y+65,18,17,120,160); gB.drawArc(x+16,y+35,5,10,90,160); gB.drawArc(x+31,y+20,5,10,90,160); gB.drawArc(x+43,y+14,5,10,90,160); gB.drawArc(x+60,y+8,15,19,50,140); gB.drawArc(x+88,y+6,15,19,50,100); gB.drawArc(x+110,y+8,15,19,50,130); gB.drawArc(x+134,y+13,13,11,0,190); gB.drawArc(x+157,y+25,13,11,20,160); gB.drawArc(x+163,y+38,16,5,0,150); gB.drawArc(x+184,y+53,10,8,90,90); //inner ears gB.drawArc(x+3,y+71,9,9,0,90); gB.drawLine(x+116,y+31,x+135,y+25); //eyebrows gB.drawLine(x+40,y+29,x+58,y+35); gB.drawArc(x+78,y+56,17,14,110,120); } public void drawChris(int shiftRight, int shiftDown, Graphics g) { int x = shiftRight; int y = shiftDown; Color skin = new Color(253,205,183); Color shirt = new Color(36,98,171); Color shoes = new Color(146,5,51); Color hair = new Color(254,246,55); Color hat = new Color(253,189,59); gB.setColor(Color.black); gB.fillOval(50 + x,167 + y,189,163); gB.setColor(shirt); gB.fillOval(38 + x,117 + y,177,161); gB.fillOval(20 + x,121 + y,128,70); gB.fillOval(43+ x ,182 + y,51,109); gB.fillArc(0 + x,137 + y,245,162,-10,-110); gB.fillArc(88 + x,166 + y,160,133,-5,100); gB.fillArc(144 + x,160 + y,108,110,-90,65); //face gB.setColor(hair); // left side hair gB.fillArc(42 + x,43 + y,44,90,110,140); gB.fillOval(55 + x,123 +y,8,9); gB.setColor(Color.black); gB.drawArc(42 + x,43 +y,44,90,110,135); gB.drawArc(55 + x,123 + y,8,9,0,-165); gB.setColor(hair); //right side hair gB.fillArc(85 + x,26 + y,74,111,-85,270); gB.fillOval(123 + x,130 + y,7,7); gB.fillArc(17 + x,19 + y,154,162,60,-75); gB.setColor(Color.black); gB.drawArc(17 + x,19 + y,154,162,60,-75); //rightmost outline of hair gB.setColor(skin); gB.fillOval(48 + x,28 + y,83,113); gB.fillOval(88 + x,7 + y,55,129); gB.setColor(hair); gB.fillArc(116 + x,29 + y,29,73,-45,100); gB.setColor(skin); gB.fillOval(61 + x,20 + y,78,102); gB.setColor(hair); gB.fillOval(135 + x,80 + y,20,20); gB.fillOval(123 + x,129 + y,8,9); Polygon a = new Polygon(); a.addPoint(114 + x,28 + y); a.addPoint(115 + x,35 + y); a.addPoint(118 + x,50 + y); a.addPoint(122 + x,45 + y); a.addPoint(126 + x,62 + y); a.addPoint(130 + x,53 + y); a.addPoint(130 + x,57 + y); a.addPoint(130 + x,46 + y); a.addPoint(126 + x,29 + y); gB.fillPolygon(a); gB.setColor(skin); gB.fillArc(127 + x,37 + y,10,13,-70,180); gB.fillArc(55 + x,96 + y,78,44,-90,90); gB.setColor(Color.black); gB.drawArc(48 + x,28 + y,83,113,140,135); //left side of face gB.drawArc(76 + x,25 + y,83,114,-40,-40); //bottom outline of hair gB.drawArc(88 + x,7 + y,55,129,-10,-65); gB.drawArc(61 + x,20 + y,78,102,-22,48); gB.drawArc(127 + x,37 + y,10,13,-65,185); gB.drawArc(136 + x,88 + y,5,7,180,130); gB.drawPolygon(a); gB.drawArc(123 + x,132 + y,7,7,150,70); gB.drawArc(55 + x,96 + y,78,44,-90,45); gB.drawArc(129 + x,39 + y,14,14,180,-90); gB.setColor(Color.white); //eyes gB.fillOval(51 + x,36 + y,25,22); gB.fillOval(81 + x,33 + y,25,23); gB.setColor(Color.black); gB.drawOval(51 + x,36 + y,25,22); gB.drawOval(81 + x,33 + y,25,23); gB.setColor(Color.black); //pupils gB.fillOval(69 + x,42 + y,5,5); gB.fillOval(101 + x,39 + y,5,5); gB.drawArc(68 + x,51 + y,18,22,-30,-150); //nose gB.drawArc(63 + x,28 + y,102,129,136,16); gB.drawArc(77 + x, 100 + y, 19,21,120,60); //uppper mouth gB.drawLine(77 + x,111 + y,94 + x,111 + y); gB.drawArc(83 + x,111 + y,20,22,0,90); gB.drawArc(72 + x,118 + y,31,21,20,130); gB.drawArc(97 + x,118 + y,7,7,-80,75); gB.drawLine(97 + x,120 + y,97 + x,120 + y); gB.fillArc(82 + x,111 + y,18,8,-95,200); gB.fillOval(95 + x,114 + y,8,7); gB.drawArc(97 + x,118 + y,7,7,-80,75); gB.drawArc(74 + x,119 + y,6,8,190,125); //lower mouth gB.drawArc(77 + x,109 + y,17,26,195,95); gB.drawArc(86 + x,119 + y,15,16,195,90); gB.setColor(skin); //tongue gB.fillOval(99 + x,119 + y,4,4); // hat gB.setColor(Color.black); gB.fillArc(78 + x,5 + y,56,27,-50,250); gB.fillArc(117 + x,13 + y,26,36,-16,195); gB.fillOval(108 + x,20 + y,13,9); gB.setColor(hat); gB.fillArc(56 + x,0 + y,55,50,0,195); gB.fillArc(80 + x,23 + y,44,23,60,120); gB.fillArc(56 + x,26 + y,48,20,0,185); gB.fillArc(20 + x,31 + y,32,33,5,37); gB.fillArc(46 + x,32 + y,48,12,0,180); Polygon poly = new Polygon(); poly.addPoint(51 + x,44 + y); poly.addPoint(65 + x,38 + y); poly.addPoint(49 + x,36 + y); gB.fillPolygon(poly); gB.setColor(Color.black); gB.drawArc(30 + x,25 + y,128,76,30,125); gB.drawArc(56 + x,0 + y,55,50,0,195); gB.fillArc(104 + x,20 + y,12,11,0,90); gB.drawArc(36 + x,36 + y,102,24,75,100); gB.drawArc(30 + x,34 + y,26,13,0,-120); gB.drawLine(111 + x,26 + y,101 + x,36 + y); gB.setColor(shirt); gB.fillOval(140 + x,94 + y,110,79); gB.setColor(skin); gB.fillOval(11 + x,142 + y,35,83); gB.fillArc(1 + x,140 + y,74,88,120,200); gB.fillOval(13 + x,169 + y,59,60); gB.fillOval(5 + x,183 + y,105,45); gB.fillOval(66 + x,175 + y,25,39); gB.fillOval(83 + x,173 + y,21,14); gB.fillOval(100 + x,169 + y,15,16); gB.fillOval(105 + x,199 + y,23,12); gB.fillOval(86 + x,200 + y,38,18); gB.fillOval(80 + x,179 + y,31,36); gB.fillOval(97 + x,177 + y,15,15); gB.fillOval(198 + x,95 + y,24,80); gB.fillArc(171 + x,96 + y,79,73,-90,180); gB.fillOval(130 + x,159 + y,20,14); gB.fillOval(136 + x,172 + y,15,21); gB.fillOval(152 + x,180 + y,16,24); gB.fillOval(132 + x,150 + y,101,25); gB.fillOval(141 + x,165 + y,28,22); gB.fillOval(148 + x,163 + y,45,29); gB.fillArc(107 + x,98 + y,139,83,0,-90); gB.fillArc(169 + x,111 + y,98,89,90,90); gB.setColor(Color.black); gB.drawArc(11 + x,142 + y,35,83,90,-70); gB.drawArc(66 + x,175 + y,25,39,40,155); gB.drawArc(83 + x,173 + y,21,14,-90,250); gB.drawArc(100 + x,169 + y,15,16,-40,210); gB.drawArc(105 + x,199 + y,23,12,-25,190); gB.drawArc(0 + x,116 + y,213,142,180,-60); gB.drawArc(0 + x,155 + y,114,75,170,150); gB.drawArc(0 + x,167 + y,67,40,0,85); gB.drawLine(0 + x,184 + y,0 + x,195 + y); gB.drawArc(75 + x,178 + y,15,13,20,-170); gB.drawArc(97 + x,177 + y,15,15,10,-60); gB.drawArc(80 + x,179 + y,31,36,-10,30); gB.drawArc(86 + x,200 + y,38,18,0,-100); gB.drawArc(43 + x,148 + y,38,149,95,40); gB.drawArc(43 + x,182 + y,51,109,-90,-99); gB.drawArc(198 + x,95 + y,24,80,90,55); gB.drawArc(171 + x,96 + y,79,73,90,-100); gB.drawArc(140 + x,94 + y,110,79,180,-100); gB.drawArc(130 + x,159 + y,20,14,120,240); gB.drawArc(136 + x,172 + y,15,21,90,250); gB.drawArc(152 + x,180 + y,16,24,120,240); gB.drawArc(132 + x,150 + y,101,25,100,80); gB.drawArc(110 + x,98 + y,139,83,0,-80); gB.drawArc(169 + x,111 + y,98,89,90,83); gB.drawArc(148 + x,163 + y,45,29,-10,-80); gB.drawArc(88 + x,166 + y,160,133,-5,60); gB.drawArc(144 + x,160 + y,108,110,-25,-25); gB.fillOval(100 + x,251 + y,103,78); gB.fillOval(86 + x,289 + y,66,114); gB.fillArc(112 + x,343 + y,121,59,90,180); gB.fillOval(152 + x,304 + y,46,66); gB.setColor(Color.white); gB.fillOval(83 + x,322 + y,112,52); gB.fillRoundRect(132 + x,342 + y,65,32,20,20); gB.fillOval(71 + x,382 + y,73,39); gB.fillRoundRect(105 + x,393 + y,75,28,15,15); gB.setColor(Color.black); gB.fillArc(131 + x,365 + y,50,56,-5,51); Polygon stripe = new Polygon(); stripe.addPoint(134 + x,322 + y); stripe.addPoint(148 + x,344 + y); stripe.addPoint(161 + x,346 + y); stripe.addPoint(150 + x,322 + y); Polygon stripe1 = new Polygon(); stripe1.addPoint(162 + x,324 + y); stripe1.addPoint(173 + x,352 + y); stripe1.addPoint(184 + x,357 + y); stripe1.addPoint(178 + x,329 + y); Polygon stripe2 = new Polygon(); stripe2.addPoint(124 + x,390 + y); stripe2.addPoint(135 + x,421 + y); stripe2.addPoint(148 + x,421 + y); stripe2.addPoint(138 + x,390 + y); stripe2.addPoint(129 + x,385 + y); Polygon stripe3 = new Polygon(); stripe3.addPoint(152 + x,392 + y); stripe3.addPoint(158 + x,421 + y); stripe3.addPoint(169 + x,421 + y); stripe3.addPoint(166 + x,392 + y); gB.setColor(shoes); gB.fillPolygon(stripe); gB.fillPolygon(stripe1); gB.fillPolygon(stripe2); gB.fillPolygon(stripe3); gB.setColor(Color.black); gB.drawArc(56 + x,342 + y,139,73,10,115); gB.drawArc(83 + x,322 + y,48,43,3,90); gB.drawArc(91 + x,388 + y,76,32,90,40); gB.drawArc(83 + x,322 + y,112,52,0,270); gB.drawArc(71 + x,382 + y,73,39,90,180); gB.drawArc(48 + x,383 + y,71,77,0,75); gB.drawLine(105 + x,421 + y,175 + x,421 + y); gB.drawArc(163 + x,393 + y,19,28,90,-180); gB.drawLine(132 + x,374 + y,190 + x,374 + y); gB.drawArc(156 + x,296 + y,41,114,10,-30); } public void drawPicture(int x, int y, String name, Graphics g) { Image portrait; Color frame = new Color(242,205,57); Color frameShade = new Color(218,177,14); Color bgcolor = new Color(140,169,175); int frameW = 210; int frameH = 160; int frameSize = 10; int shadeFactor = 3; gB.setColor(frame); gB.drawLine(x,y,x+frameW/2,y-10); gB.drawLine(x+frameW,y,x+frameW/2,y-10); portrait = getImage(getDocumentBase(), name); gB.drawImage(portrait,x+frameSize,y+frameSize,this); gB.setColor(frame); gB.fillRect(x,y,frameW,frameSize); // Top frame gB.fillRect(x,y,frameSize,frameH); // Left gB.fillRect(x,y+frameH-frameSize,frameW,frameSize); // Bottom gB.fillRect(x+frameW-frameSize,y,frameSize,frameH); // Right gB.setColor(frameShade); gB.fillRect(x,y+frameH-(frameSize/shadeFactor),frameW,(frameSize/shadeFactor)); // Frame shades gB.fillRect(x+frameW-(frameSize/shadeFactor),y, (frameSize/shadeFactor),frameH); gB.setColor(frameShade); // Inside frame int insFrame = 3; gB.fillRect(x+frameSize,y+frameSize,frameW-(2*frameSize),insFrame); // Top gB.fillRect(x+frameSize,y+frameH-frameSize-insFrame,frameW-(2*frameSize),insFrame); // Bottom gB.fillRect(x+frameSize,y+frameSize,insFrame,frameH-(2*frameSize)); // Left gB.fillRect(x+frameW-frameSize,y+frameSize,insFrame,frameH-(2*frameSize)); // Right } public void drawStairs(int x, int y, Graphics g) { int numStairs = 9; int sizeStairs = 1; int angleStairs = 83; /* Image traceImg; traceImg = getImage(getDocumentBase(), "trace.jpg"); gB.drawImage(traceImg,x+46,y+253,this); */ for(int k=0;k