我正在开发一个编程类介绍项目,我遇到了一个小问题。我们正在制作侧卷轴,而且我现在在得分计数器上工作。我的问题是,当我尝试在除act方法之外的任何东西(每帧调用一次)中创建对计数器类的引用时,我得到一个空指针异常错误。如果你想看一下,你可以下载我的代码here的zip文件。
编辑: 这是违规代码:
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 :(得分:0)
在您离开这个世界之后,您正在呼叫getWorld()
[在addScore()
]中。在这种情况下,getWorld()
将返回null,因此您将获得空指针异常。尝试更改remove()
中的顺序,以便在将自己从世界中移除之前添加分数。