/**
* Write a description of class Leukozyte here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Leukozyte extends Actor
{
World w =getWorld();
public void act()
{
move(5);
rechts();
links();
fire();
}
public void fire()
{
if(Greenfoot.mousePressed(null))
{
Proteingeschoss p = new Proteingeschoss();
w.addObject(p, getX(), getY());
p.turnTowards(Greenfoot.getMouseInfo().getX(), Greenfoot.getMouseInfo().getY());
}
}
/**
* Wenn der Key "d" dedrückt wird, dann dreht sich die Leukozyte im Uhrzeigersinn.
*/
public void rechts()
{
if(Greenfoot.isKeyDown("d"))
{
turn(5);
}
}
/**
* Wenn der Key "a" gedrückt wird, dann dreht sich die Leukozyte gegen den Uhrzeigersinn.
*/
public void links()
{
if(Greenfoot.isKeyDown("a"))
{
turn(-5);
}
}
}
public class Proteingeschoss extends Actor
{
/**
* Act - do whatever the Protonengeschoss wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
private int speed = 6;
public void act()
{
turnToMouse();
move(speed);
destroyEnemies();
atEdge();
}
public void turnToMouse()
{
turnTowards(Greenfoot.getMouseInfo().getX(), Greenfoot.getMouseInfo().getY());
}
/**
* Durch die Methode "destroyEnemies()" werden Feinde bzw. feindliche Organismen zerstört
*/
public void destroyEnemies()
{
if(isTouching(Mikrobe.class))
{
removeTouching(Mikrobe.class);
}
if(isTouching(Fungi.class))
{
removeTouching(Fungi.class);
}
if(isTouching(Bakterium.class))
{
removeTouching(Bakterium.class);
}
}
public void atEdge()
{
if(isAtEdge())
{
getWorld().removeObject(this);
}
}
}
