package lilWorld; import processing.core.PApplet; import processing.core.PVector; import java.util.ArrayList; import java.util.List; public abstract class Creature{ protected static final double PI = 3.14159265; PVector loc; PVector vel; PVector acc; PApplet parent; PVector grav = new PVector(0,0.1f); int mass; int size; int dir; Boolean changeColor= false; Creature(PVector l, PVector a, PVector v, int m_, PApplet p) { loc = l.get(); vel = new PVector(0,0);//v.get(); acc = a.get(); mass = m_; size = m_*2; parent = p; } public void applyForce(PVector force) { //force.mult(2); //force.div(mass); acc.add(force); } public void move() { //creep(creepSpeed); applyForce(grav); // applyForce(. .. ); // applyForce(. . .); if((loc.x <= 10) || (loc.x >= parent.width-10)) { //vel.x = -vel.x; //pure bounce PVector edgeForce = new PVector(-vel.x/3,parent.random(-1,5)); this.vel.mult(0); applyForce(edgeForce); } if ((loc.y <= 5) || (loc.y >= parent.height-10)) { //vel.y = -vel.y; //pure bounce PVector edgeForce = new PVector(parent.random(-2,2),-vel.y/3); this.vel.mult(0); applyForce(edgeForce); } vel.add(acc); loc.add(vel); acc.mult(0); loc.x = PApplet.constrain(loc.x,0,parent.width-3); loc.y = PApplet.constrain(loc.y,0,parent.height-3); } public void grow() { } public int getSize() { return size; } public void changeColor() { changeColor= true; } public Boolean getChangeColor() { if(changeColor) { return true; } else { return false; } } public abstract void show(); }