When an actor reaches the edge i want to remove it. It works fine but i keep getting a terminal window. this is the code of the class
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class Kogel here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Kogel extends Actor
{
int bijl =1;
int tellerAnimatie =1;
/**
* Constructor die nieuwe actors maakt
*
*/
public void act()
{
if (getWorld() != null) doeKogelDingen();
if (getWorld() != null) vermoordMonster();
if (getWorld() != null) vermoordNachtbaas();
animatieBijl();
}
/**
* methode die animatie laat gebeuren
*/
public void animatieBijl() {
move(4);
if (bijl<=8)
{
if (tellerAnimatie == 5)
{
setImage("AxeThrowing" + bijl + ".png");
bijl++;
tellerAnimatie=1;
}
}
else
{
bijl=1;
}
tellerAnimatie++;
}
/**
* methode die monsters vermoord en de counter update
*/
public void vermoordMonster() {
Actor monster = getOneIntersectingObject(Monsters.class);
if (monster != null) // als het monster niet gelijk is aan niks (dus hij is er wel), update de counter, verwijder de desbetreffende kogel en monster
{
updateScoreLevel1();
getWorld().removeObject(monster);
getWorld().removeObject(this);
}
}
public void vermoordNachtbaas() {
Actor nachtbaas = getOneIntersectingObject(Nachtbaas.class);
if (nachtbaas != null) // als de nachtbaas niet gelijk is aan niks (dus hij is er wel), update de counter, en verwijder de desbetreffende kogel
{
updateScoreLevel2();
getWorld().removeObject(this);
setLocation(nachtbaas.getX() - 40, nachtbaas.getY()- 40);
}
}
/**
* de methode wat de basis is van wat de kogel moet doen
*/
public void doeKogelDingen() {
if (isAtEdge()) //als je aan de rand bent, verwijder de desbetreffend kogel
{
getWorld().removeObject(this);
}
if (isTouching(Obstakel.class)) // als je een obstakel raakt, verwijder de desbetreffende kogel
{
getWorld().removeObject(this);
}
}
/**
* de methode die de counter met 1 update
*/
private void updateScoreLevel1()
{
Level1 level1 = (Level1) getWorld();
Score score = level1.pakScore();
score.bumpCount(1);
}
/**
* de methode die de counter met 1 update
*/
private void updateScoreLevel2() {
Level2 level2 = (Level2) getWorld();
Score2 score2 = level2.pakScore2();
score2.bumpCount2(1);
}
}
