/*Destiny Ghost shell description As the mouse moves around the screen the ghost eye will look at the mouse cursor locaton following it piviting in the eye socket. setting is placed in the night sky hence the stars in the background. twinkling stars By: Trevon Harris Sept 19 2016 */ void setup() { size(400,400); rectMode(CORNERS); ellipseMode(CORNERS); frameRate(30);// 30 frames per secound } void draw() { ellipseMode(CORNERS); background(0,24,72);//dark blue/black to simulate the sky stroke(0); //middle grey bar fill(50,50,50); rect(80,195,320,205); //Box behund ghost giving off diagnal lines as well as filling in around the eye socket fill(100,100,100); rect(130,130,270,270); //grey ring/ eye socket fill(100,100,100); ellipse(160,160,240,240); //dark blue filling of eye fill(40,0,100); ellipse(170,170,230,230); //inside triangles //top right top left //noStroke(); fill(255,130,0); triangle(240,160,200,120,200,140); triangle(200,120,200,140,160,160); //left top left bottum triangle(160,160,140,195,120,195); triangle(160,240,140,205,120,205); //bottum left bottum right triangle(160,240,200,260,200,280); triangle(200,260,200,280,240,240); //right bottum right top triangle(240,240,260,205,280,205); triangle(260,195,280,195,240,160); //outter shell stroke(0); fill(0); //top right quad(340,180,315,165,280,195,320,195); quad(315,165,270,130,240,160,280,195); quad(270,130,240,80,200,120,240,160); quad(240,80,220,50,200,70,200,120); //top left quad(200,70,180,50,160,80,200,120); quad(200,120,160,80,130,130,160,160); quad(160,160,130,130,85,165,120,195); quad(120,195,85,165,60,180,80,195); //bottum left quad(120,205,80,205,60,220,85,235); quad(160,240,120,205,85,235,130,270); quad(200,280,160,240,130,270,160,320); quad(200,330,200,280,160,320,180,350); //bottum right quad(240,320,200,280,200,330,220,350); quad(270,270,240,240,200,280,240,320); quad(315,235,280,205,240,240,270,270); quad(340,220,320,205,280,205,315,235); stroke(255,130,0); //top and bottum orange triangle fill(255,130,0);//orange filling triangle(220,50,180,50,200,70); triangle(220,350,200,330,180,350); //left top and bottum orange triangles triangle(80,195,60,180,60,195); triangle(80,205,60,205,60,220); //right top and bottum triangles triangle(340,195,340,180,320,195); triangle(340,220,340,205,320,205); /*as the mouse moves around the screen the green colored eye follows the mouse piviting around the eye socket*/ stroke(0,255,0);// will fill the 1 pixel gap inbetteen the shapes fill(0,255,0);//green filling for eye ellipse((mouseX-width/2)*.02+195,(mouseY-height/2)*.02+195,(mouseX-width/2)*.02+205,(mouseY-height/2)*.02+205);//middle of the eye //right side of eye quad((mouseX-width/2)*.02+198,(mouseY-height/2)*.02+177,(mouseX-width/2)*.02+198,(mouseY-height/2)*.02+190,(mouseX-width/2)*.02+190,(mouseY-height/2)*.02+200,(mouseX-width/2)*.02+180,(mouseY-height/2)*.02+195);// eye top left quad((mouseX-width/2)*.02+198,(mouseY-height/2)*.02+223,(mouseX-width/2)*.02+198,(mouseY-height/2)*.02+210,(mouseX-width/2)*.02+190,(mouseY-height/2)*.02+200,(mouseX-width/2)*.02+180,(mouseY-height/2)*.02+205);// eye bottim left triangle((mouseX-width/2)*.02+190,(mouseY-height/2)*.02+200,(mouseX-width/2)*.02+180,(mouseY-height/2)*.02+195,(mouseX-width/2)*.02+180,(mouseY-height/2)*.02+205); //left side of eye quad((mouseX-width/2)*.02+202,(mouseY-height/2)*.02+177,(mouseX-width/2)*.02+202,(mouseY-height/2)*.02+190,(mouseX-width/2)*.02+210,(mouseY-height/2)*.02+200,(mouseX-width/2)*.02+220,(mouseY-height/2)*.02+195);// eye top right quad((mouseX-width/2)*.02+202,(mouseY-height/2)*.02+223,(mouseX-width/2)*.02+202,(mouseY-height/2)*.02+210,(mouseX-width/2)*.02+210,(mouseY-height/2)*.02+200,(mouseX-width/2)*.02+220,(mouseY-height/2)*.02+205);// eye top left triangle((mouseX-width/2)*.02+210,(mouseY-height/2)*.02+200,(mouseX-width/2)*.02+220,(mouseY-height/2)*.02+195,(mouseX-width/2)*.02+220,(mouseY-height/2)*.02+205); // pulsing/ glowing eye noStroke(); fill(0,255,0,60); ellipse(cos(frameCount * .08) * 5+(mouseX-width/2)*.03+140,cos(frameCount * .08) * 5+(mouseY-height/2)*.03+140,cos(frameCount * .08) * 5+(mouseX-width/2)*.03+260,cos(frameCount * .08) * 5+(mouseY-height/2)*.03+260); ellipse(cos(frameCount * .08) * 5+(mouseX-width/2)*.03+160,cos(frameCount * .08) * 5+(mouseY-height/2)*.03+160,cos(frameCount * .08) * 5+(mouseX-width/2)*.03+240,cos(frameCount * .08) * 5+(mouseY-height/2)*.03+240); // stars twinkeling using sin/framecounte opening and closing flat circles produces twinkling effect fill(255); ellipseMode(CENTER); ellipse(320,140,sin(frameCount*25)*5,10); ellipse(320,140,10,sin(frameCount*25)*5); ellipse(100,60,sin(frameCount*25)*5,10); ellipse(100,60,10,sin(frameCount*25)*5); ellipse(40,380,sin(frameCount*25)*5,10); ellipse(40,380,10,sin(frameCount*25)*5); ellipse(360,20,sin(frameCount*25)*5,10); ellipse(360,20,10,sin(frameCount*25)*5); ellipse(380,240,sin(frameCount*25)*5,10); ellipse(380,240,10,sin(frameCount*25)*5); ellipse(300,300,sin(frameCount*25)*5,10); ellipse(300,300,10,sin(frameCount*25)*5); ellipse(120,380,sin(frameCount*25)*5,10); ellipse(120,380,10,sin(frameCount*25)*5); ellipse(60,160,sin(frameCount*25)*5,10); ellipse(60,160,10,sin(frameCount*25)*5); ellipse(340,360,sin(frameCount*25)*5,10); ellipse(340,360,10,sin(frameCount*25)*5); ellipse(100,280,sin(frameCount*25)*5,10); ellipse(100,280,10,sin(frameCount*25)*5); ellipse(270,60,sin(frameCount*25)*5,10); ellipse(270,60,10,sin(frameCount*25)*5); //detail lines stroke(255,130,0); fill(255,130,0); line(240,160,270,130); line(160,160,130,130); line(160,240,130,270); line(240,240,270,270); line(223,55,200,80); line(200,80,178,55); line(178,343,200,320); line(200,320,223,343); }