int NUM_AGENT_TICKETS=5; float AGENT_MAX_SPEED=2.0; final class Agent{ float x; float y; float vx; float vy; Ticket[] tickets; Agent(){ x=random(WIDTH); y=random(HEIGHT); vx=random(6)-3; vy=random(6)-3; tickets=new Ticket[NUM_AGENT_TICKETS]; for (int i=0; iAGENT_MAX_SPEED) { vx=AGENT_MAX_SPEED; } if (vy>AGENT_MAX_SPEED) { vy=AGENT_MAX_SPEED; } if (vx<-AGENT_MAX_SPEED) { vx=-AGENT_MAX_SPEED; } if (vy<-AGENT_MAX_SPEED) { vy=-AGENT_MAX_SPEED; } x+=vx; y+=vy; if (x<0) { x=0; vx=-vx; } if (y<0) { y=0; vy=-vy; } if (x>WIDTH-TICKET_WIDTH) { x=WIDTH-TICKET_WIDTH; vx=-vx; } if (y>HEIGHT-TICKET_HEIGHT*tickets.length) { y=HEIGHT-TICKET_HEIGHT*tickets.length; vy=-vy; } } void draw(){ pushMatrix(); translate(x,y); for (int i=0; iabs(y-b.y)) { if (x > b.x) { vx=abs(vx); b.vx=-abs(b.vx); } else if (x < b.x) { vx=-abs(vx); b.vx=abs(b.vx); } } else { if (y > b.y) { vy=abs(vy); b.vy=-abs(b.vy); } else if (y < b.y) { vy=-abs(vy); b.vy=abs(b.vy); } } } };