我的程序是一个游戏,它要求每2秒生成一个精灵。到目前为止,以下是我的代码:
@Override
public void run() {
try {
spawnSprite(300,300,true);
} catch(NullPointerException e){
e.printStackTrace();
system.exit(0);
}
}
private void spawnSprite(float x,float y,Boolean isPea){
String url;
if(isPea)
url = "/Assets/Pea.png";
else
url = "/Assets/Not_pea.png";
Image image = new Image(getclass().getResourceAsStream(url));
ImageView Im = new ImageView();
Im.setImage(image);
Im.setX(x);
Im.setY(y);
AP.getchildren().add(Im);
}
@Override
public void initialize(URL url,ResourceBundle resourceBundle) {
spawnSprite( 300,true);
Timer SpawnTimer = new Timer();
TimerTask task= new Map_Controller();
SpawnTimer.scheduleAtFixedRate(task,1000L,2000L);
}
}
但是AP,getchildren.add(Im)
中的spawnSprite()
会引发NullPointerException。我确实发现,如果我从initialize()
调用函数,则不会引发任何异常。
任何建议都会非常有帮助,谢谢!