I've tried giving Health to the alien in my game, but it constantly comes up with a java.lang.NullPointerException error.
If possible could you help me understand it to a level of understanding so I could avoid these types of problems later/be able to handle them myself.
Thanks.
Curtis E.
java.lang.NullPointerException
at Alien.HealthSystem(Alien.java:51)
at Alien.act(Alien.java:18)
at greenfoot.core.Simulation.actActor(Simulation.java:604)
at greenfoot.core.Simulation.runOneLoop(Simulation.java:562)
at greenfoot.core.Simulation.runContent(Simulation.java:221)
at greenfoot.core.Simulation.run(Simulation.java:211)
public void act() //Alien.class
{
movement();
HealthSystem(); //First error happens here
}
private int health = 2;
public void movement()
{
if(! getWorld().getObjects(Planet.class).isEmpty())
{
Actor planet = (Actor)getWorld().getObjects(Planet.class).get(0);
int planetX = planet.getX();
int planetY = planet.getY();
turnTowards(planetX, planetY);
move(2);
}
if(isTouching(Alien.class))
{
Teleport();
}
}
public void Teleport()
{
int cordsX = getX();
int cordsY = getY();
setLocation(cordsX, (cordsY - Greenfoot.getRandomNumber(200)));
}
public void HealthSystem()
{
if(health == 0)
{
getWorld().removeObject(this);
MyWorld world = (MyWorld)getWorld();
world.getScore();
System.out.println("This ran successfully"); //Doesn't run as of yet
world.increaseScore(); //Next happens here
}
if(getOneIntersectingObject(Bullet.class) != null)
{
int score;
MyWorld world = (MyWorld)getWorld();
getWorld().removeObject(getOneIntersectingObject(Bullet.class));
health = health - 1;
}
} public MyWorld()
{
// Create a new world with 600x400 cells with a cell size of 1x1 pixels.
super(1500, 1000, 1);
setUpWorld();
}
public void setUpWorld()
{
addObject(new BackGround(), 750, 500);
addObject(new Planet(), 0, 500);
addObject(new Player(), 238, 493);
addObject(new Alien(), 1200 ,Greenfoot.getRandomNumber(1000));
addObject(new Alien(), 1200 ,Greenfoot.getRandomNumber(1000));
addObject(new Alien(), 1200 ,Greenfoot.getRandomNumber(1000));
}
public int getScore()
{
return score;
}
public int level = 1;
public void increaseScore() //Problem is supposedly here?
{
score++;
showText("Score" + score, 300, 30);
}
