/* * DWF Processing 07 * * eine Arbeit von Marc Zürcher, Rahel Metzger, Martin Staubli * ETH Zürich, im Juli 2007 * * ein terrain wird generiert und mit wegen belegt * agenten verschieben das terrain um die wege freizulegen * agenten welche die umgebung bepflanzen * agenten welche die pflanzen pflücken * agenten welche die wege demolieren * die verschiedenen agenten mit unterschiedlichen aufgaben enstehen je nach umstand oder sterben selbständig ab * */ ///////////////////////// schrift, screengrösse, init terrain, init alle start agenten ///////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void setup () { PFont fontA = loadFont("CourierNew36.vlw"); textFont(fontA,11); size(screen_x, 2*screen_y,P3D); //println(screen_x +" "+ screen_y); background(0); //bereite das Terrain vor mit den parametern -> Terrain(FarbenPalette,laenge,schichten) dieFlaeche.initTerrain(); //random generieren der Wegbauer auf dem Terrain - bewegen die information for (int x=0; x < startGraber; x++) { int meinX = (int)random(bildRand,screen_x-bildRand); int meinY = (int)random(bildRand,screen_y-bildRand); int speed = 2; float winkel = random(0,360); AgentGraber neuerGraber = new AgentGraber( meinX, meinY, speed, winkel); graberListe.add(neuerGraber); } //random generieren der Pflanzer Agenten auf dem Terrain - Pflanzen Objekte for (int x=0; x < startPflanzer; x++) { int meinX = (int)random(bildRand,screen_x-bildRand); int meinY = (int)random(bildRand,screen_y-bildRand); int speed = 2; float winkel = random(0,360); AgentPflanzer neuerPflanzer = new AgentPflanzer( meinX, meinY, speed, winkel); pflanzerListe.add(neuerPflanzer); } //random generieren der Demolierer Agenten auf dem Terrain - graben Löcher in den Weg for (int x=0; x < startDemolierer; x++) { int meinX = (int)random(bildRand,screen_x-bildRand); int meinY = (int)random(bildRand,screen_y-bildRand); int speed = 2; float winkel = random(0,360); AgentDemolierer neuerDemolierer = new AgentDemolierer( meinX, meinY, speed, winkel); demoliererListe.add(neuerDemolierer); } //random generieren der Pfluecker Agenten auf dem Terrain - glaetten das Terrain for (int x=0; x < startPfluecker; x++) { int meinX = (int)random(bildRand,screen_x-bildRand); int meinY = (int)random(bildRand,screen_y-bildRand); int speed = 2; float winkel = random(0,360); AgentPfluecker neuerPfluecker = new AgentPfluecker( meinX, meinY, speed, winkel); pflueckerListe.add(neuerPfluecker); } //random startWerte für die Wege for (int x=0; x < startWege; x++) { int xWegStart=(int)random(bildRand,screen_x-bildRand); int yWegStart=(int)random(bildRand,screen_y-bildRand); int xWegEnde=(int)random(bildRand,screen_x-bildRand); int yWegEnde=(int)random(bildRand,screen_y-bildRand); int dickeWeg=4; Wege neuerWeg = new Wege(xWegStart,yWegStart,xWegEnde,yWegEnde,dickeWeg); wegeListe.add(neuerWeg); } } ///////////////////////// zeichne alle information je status ///////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void draw () { if(d3refresh>=200) { background(0); dieFlaeche.draw3DTerrain(); d3refresh =1; } d3refresh+=1; dieFlaeche.draw2DTerrain(); zeichneAgentenUndWege(); dasInterface.drawInterface(); } ///////////////////////// holt alle informationen den arrays und stellt sie dar ///////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void zeichneAgentenUndWege() { for (int x=0; x < (int)blumenListe.size(); x++) { ((BlumenObj)blumenListe.get(x)).meineID=x; ((BlumenObj)blumenListe.get(x)).drawme(); //alle Blumen zeichnen } for (int x=0; x