2015-01-28 2 views
0

Я работаю над проектом для введения в класс программирования, и у меня возникла небольшая проблема. Мы делаем боковой скроллер, и сейчас я работаю на счетчике. Моя проблема в том, что когда я пытаюсь создать ссылку на класс счетчика во что угодно, кроме метода act (называемого один раз в каждом фрейме), я получаю ошибку исключения нулевого указателя. Вы можете скачать zip-файл с моим кодом в нем here, если хотите посмотреть.nullPointerException error greenfoot

EDIT: Вот код обижая:

public class HeroMissile extends Missiles 

{

/** 
* Act - do whatever the HeroMissile wants to do. This method is called whenever 
* the 'Act' or 'Run' button gets pressed in the environment. 
*/ 
public void act() 
{ 
    move(8); 
    remove(); 
}  

public void remove() { 
    if(isTouching(Drone.class)) { 
     removeTouching(Drone.class); 
     getWorld().addObject(new Explosion(), getX(), getY()); 
     getWorld().removeObject(this); 
     addScore(); 
     return; 
    } 
} 

public void addScore() { 
    City cityWorld = (City) getWorld(); 
    **Counter scoreCounter = cityWorld.getCounter();** 
    scoreCounter.add(1); 
} 

}

ответ

0

Вы звоните getWorld()addScore()] после того, как вы удалили себя от мира. В этом случае getWorld() вернет значение null, так что вы получите исключение с нулевым указателем. Попробуйте изменить порядок в remove(), чтобы добавить счет, прежде чем удалять себя из мира.

Смежные вопросы