Eye e1, e2; void setup() { size(500, 500); background(255, 255, 255); strokeWeight(10); // Beastly arc (400,350,150,150,0, PI/2); strokeWeight(1); fill(0); smooth(); ellipse(400,350,100,150); ellipse(400,250,100,100); triangle(360,180,360,250,400,225); triangle(440,180,440,250,400,225); ellipse(418,423,30,10); fill(255); ellipse(380,260,10,10); ellipse(410,260,10,10); smooth(); noStroke(); e1 = new Eye( 380, 260, 20); e2 = new Eye( 410, 260, 20); } int step =1; int x=0; void draw() { fill(249,163,241); ellipse(mouseX,mouseY,10,10); e1.update(mouseX, mouseY); e2.update(mouseX, mouseY); e1.display(); e2.display(); } class Eye { int ex, ey; int size; float angle = 0.0; Eye(int x, int y, int s) { ex = x; ey = y; size = s; } void update(int mx, int my) { angle = atan2(my-ey, mx-ex); } void display() { pushMatrix(); translate(ex, ey); fill(255); ellipse(0, 0, size, size); rotate(angle); fill(153); ellipse(size/4, 0, size/2, size/2); popMatrix(); } }