import java.awt.geom.*; import processing.opengl.*; int numRats = 800; Rat[] rats; PImage[] ratImgs; GeneralPath path1; GeneralPath path2; boolean target1 = true; void setup() { size(800, 800, OPENGL); smooth(); path1 = new GeneralPath(); path1.moveTo(50, 20); path1.lineTo(350, 100); path1.lineTo(325, 250); path1.lineTo(50, 375); path1.closePath(); path2 = new GeneralPath(); path2.moveTo(450, 450); path2.lineTo(750, 370); path2.lineTo(725, 725); path2.lineTo(450, 600); path2.closePath(); ratImgs = new PImage[4]; ratImgs[0] = loadImage("rat-1.png"); ratImgs[1] = loadImage("rat-2.png"); ratImgs[2] = loadImage("rat-3.png"); ratImgs[3] = loadImage("rat-4.png"); rats = new Rat[numRats]; for (int i=0; i < numRats; i++) { rats[i] = new Rat(path1); } } void draw() { background(255); noFill(); beginShape(); vertex(50, 20); vertex(350, 100); vertex(325, 250); vertex(50, 375); endShape(CLOSE); beginShape(); vertex(450, 450); vertex(750, 370); vertex(725, 725); vertex(450, 600); endShape(CLOSE); for (int i=0; i < numRats; i++) { rats[i].update(); rats[i].render(); } //println("fps: " + frameRate); } void mousePressed() { if (target1) for (int i=0; i < numRats; i++) rats[i].setArea(path2); else for (int i=0; i < numRats; i++) rats[i].setArea(path1); target1 = !target1; }