I updated my code so that I can set the legion variable to a method, but now the fishs won't spawn.
My code:
import greenfoot.*;
import java.util.Random;
public class Fisch extends SchwimmActor {
private int timer;
private int LebenszeitF = 0;
private int legion = 0;
private int spawnFisch = 0;
public Fisch(){
stats();
}
public void act(){
amRand();
schwimmen();
ifberühren();
move(4);
stats();
spawnFisch--;
Actor F = getOneIntersectingObject(Fisch.class);
LebenszeitF--;
if (LebenszeitF == 0)
{
getWorld().removeObject(F);
legion--;
return;
//lässt leider nur einen zufälligen Fisch sterben
}
World w = getWorld();
if (spawnFisch == 0){ //nach 5 sekunden
Random random = new Random();
for (int i = 0 ; i < 1; i++)
w.addObject (new Fisch(),random.nextInt(600),random.nextInt(600));
legion++;
spawnFisch = 200;
}
}
private void ausrottung(){
if (legion == 0){
System.out.println("Die gelben Fische sind ausgestorben :(");
Greenfoot.stop();
}
}
private void stats(){
LebenszeitF = 10;
legion = 0;
spawnFisch = 1;
}
public void amRand(){
if (atWorldEdge()){
turn(4);
}
}
public void ifberühren(){
if (canTouch(Raubfisch.class)){
fressen(Fisch.class);
legion--;
}
if (canTouch(Delfin.class)){
fressen(Fisch.class);
legion--;
}
}
public void schwimmen(){
if(Greenfoot.getRandomNumber(100)<20){
turn(Greenfoot.getRandomNumber(10));
}
}
}
