/* * Sub KLASSE Pfluecker * * fressen die pflanzen auf die sie treffen * wenn sie fressen können, ensteht ein weiterer pfluecker * wenn sie nichts zu fressen haben, sterben sie ab * */ class AgentPfluecker extends Agent { int habGegessen = 0; color meineFarbe = #FFFF00; AgentPfluecker(float x, float y,float s, float a, float to) { xPos = x; yPos = y; speed = s; angle = a; torkeln = to; } AgentPfluecker(float x, float y,float s,float a) { xPos = x; yPos = y; speed = s; angle = a; } // Methode - zeichnet den agenten void drawme() { actions(); noStroke(); fill(meineFarbe); ellipse(xPos,yPos,6,6); } // Methode - welche aktionen/überprüfungen ausgeführt werden sollen void actions() { float radian = angle *PI/180; xPos += speed * sin(radian)+random(-torkeln,torkeln); yPos += speed * cos(radian)+random(-torkeln,torkeln); randCollision(); pfluecken(); } // Methode - void pfluecken() { BlumenObj loescheBlume = findBlume(xPos, yPos, 40); //ist im umkreis eine blume? if(loescheBlume!=null){ if((int)random(0,100)<30) //chance von 30% dass sie auch wirklich gegessen wird { blumenListe.remove(loescheBlume); habGegessen+=100; } }else{if(habGegessen >-50)habGegessen-=1;} if(habGegessen >=300) //es gibt viel zu fressen, neuer agent entsteht { AgentPfluecker newAgent = new AgentPfluecker(xPos, yPos, speed, random(0,360)); pflueckerListe.add(newAgent); habGegessen =0; } if(habGegessen <=-50&&pflueckerListe.size()>1){ //hab nichts mehr gegessen, agent stirbt ab AgentPfluecker loescheAgent = (AgentPfluecker) pflueckerListe.get(meineID); pflueckerListe.remove(loescheAgent); } } }