import java.util.List;
import prolebra.objects.*;
Creeper creep;
List<Creeper> creeperSet;
PImage img, img2, img3, img4;
PVector loc;
PVector vel;
// ---------------------Behavior Flags-----------------
boolean createTrails = true;
boolean drawConn = false;
// ---------------------Camera and Dims---------------
boolean D2 = true;
boolean D3 = false;
// -------------------Environ Stuff--------------------
int creepCount = 1000;
int maxTrail = 25;
// ------------------------Trump----------------------
Trump trump;
// -----------------------Setup-----------------------
public void setup() {
size(1400, 800, P2D);
smooth();
background(0);
this.img = loadImage("LULZ.png");
this.img2 = loadImage("SI.png");
this.img3 = loadImage("trumper2_NH.png");
this.img4 = loadImage("trumper_NH.png");
this.creeperSet = new ArrayList<Creeper>();
PVector tloc = new PVector(random(0, width), random(0, height), 0);
PVector tspeed = new PVector(random(-1, 1), random(-1, 1), 0);
this.trump = new Trump(tloc, tspeed, true, this.D3, this);
for (int i = 0; i < creepCount; i++) {
this.loc = new PVector(random(0, width), random(0, height), 0);
this.vel = new PVector(random(-1.5f, 1.5f), random(-1.5f, 1.5f), 0);
this.creep = new Creeper(loc, vel, true, this.D3, this);
this.creeperSet.add(this.creep);
}
}
// -----------------------Draw-----------------------
public void draw() {
background(0);
trump.setMoveAttributes(4.0f, 0.169f, 1.5f);
trump.behavior.wander2D(true, true, 1, 66.0f, 66.0f);
trump.bounce(width, height);
if(trump.getSpeed().x<0){
image(img4, trump.getLocation().x-50, trump.getLocation().y-50);
}else{
image(img3, trump.getLocation().x-50, trump.getLocation().y-50);
}
trump.move();
pushStyle();
stroke(255, 0, 0);
strokeWeight(15);
popStyle();
// -----------------------------------------------------------------
// -----------------------CREEPER AGENTS---------------------------
// -----------------------------------------------------------------
for (Creeper c : this.creeperSet) {
c.setMoveAttributes(2.5f, 0.099f, 0.0015f);
c.behavior.repelTrump(trump, 200, 20, 20);
float change = 0.5;
c.behavior.wander2D(true, true, change, 66.0f, 66.0f);
float distance = c.getLocation().dist(trump.getLocation());
//c.respawn(width, height);
c.bounce(width, height);
c.move(0, (int)distance/20);
if (createTrails) {
// --------Draw trails with color and with gradient--------
float colorA[] = new float[] { 1f, 0f, 0f };
float colorB[] = new float[] { 0.73f, 0.84f, 0.15f };
c.viz.drawGradientTrails(c.getTrailPoints(), (int)distance, colorA, colorB, 255.0f, 1.0f);
// --------Draw trails with single color and as single trail--------
//float colorA[] = new float[] {255f, 255f, 0f};
//c.viz.drawTrails(c.getTrailPoints(), false, maxTrail, colorA, 255, 1);
}
pushStyle();
stroke(255);
strokeWeight(4);
point(c.getLocation().x, c.getLocation().y, c.getLocation().z);
popStyle();
}
if (this.D2) {
surface.setSize(width, height);
}
image(img2, width-290, height-85);
image(img, 0, height-105);
textSize(20);
text("Framerate: " + (frameRate), 80, height - 6);
}
// ------------------------Keys----------------------------------
public void keyPressed() {
if (key == 'r')
setup();
if (key == 't')
this.createTrails = !this.createTrails;
}
Update