package graphic; import noise.NoiseGenerator; import processing.core.*; public class Moving extends Graphic{ PApplet p; NoiseGenerator n; float xOff; float xPlus; PVector position; float radius; float birdSize; int colorGiven; PImage birdUp; PImage birdDown; float imageWidth; float imageHeight; float scaleFactor; public Moving(PApplet p, NoiseGenerator n, float x, float y, int c){ super(p, n, x, y, c); this.n = n; this.p = p; xPlus = p.random(1,3); position = new PVector(x,y); colorGiven = c; birdSize = p.random(5,10); radius = p.random(0,10); try{ birdUp = p.loadImage("../images/flyingUp.png"); birdDown = p.loadImage("../images/flyingDown.png"); }catch(NullPointerException e){ p.println("There is an error with the image file."); } imageWidth = p.random(5,20); imageHeight = p.random(5,15); scaleFactor = p.random(0,1); } public void drawMe(){ p.pushMatrix(); p.translate(position.x,position.y); p.rotate(p.radians((float)(xOff/1.5))); p.scale(scaleFactor); p.beginShape(); for(int i = 0; i <= 20; i++){ p.noStroke(); p.fill(colorGiven); float yStar = p.sin(p.radians(i*135)) * radius ; float xStar = p.cos(p.radians(i*135)) * radius ; p.vertex(xStar, yStar); xOff += p.random((float)0.1,(float)0.5); } position.x += xPlus; if(position.x >= p.width){ position.x = 0; } p.endShape(); p.popMatrix(); } public void drawMeDaytime(){ p.pushMatrix(); p.translate(position.x,position.y); p.imageMode(p.CORNER); if(p.frameCount % 2 == 0){ p.image(birdUp, 0, 0, imageWidth, imageHeight); }else{ p.image(birdDown, 0, 0, imageWidth, imageHeight); } position.x += xPlus; if(position.x >= p.width){ position.x = 0; } p.popMatrix(); } }