我目前开始使用LWJGL制作java游戏,而且我正在制作基本的乒乓球游戏。但是我在这一行上不断收到NullPointerException。
paddle.move(1)
完整的命令是:
private GOPlayer paddle;
public void getInput(){
if(Keyboard.isKeyDown(Keyboard.KEY_W))
paddle.move(1);
}
GOPlayer.move是:
public static final float SPEED = 4f;
public void move(float mag){
this.y += SPEED * mag;
}
我做了initalize paddle
objects = new ArrayList<GameObject>();
GOPlayer paddle = new GOPlayer(0, Display.getHeight()/2 - GOPlayer.SIZEY/2, null);
objects.add(paddle);
我似乎无法弄明白,它可能像往常一样非常明显。
答案 0 :(得分:2)
好的,我只需要从
中删除第一个GOPlayerGOPlayer paddle = new GOPlayer(0, Display.getHeight()/2 - GOPlayer.SIZEY/2, null);
感谢Joachim Isaksson
答案 1 :(得分:1)
如果这是您的所有代码,paddle
只能是null
,因为它尚未初始化。
执行private GOPlayer paddle = new GOPlayer();
或类似的操作,具体取决于您创建GOPlayer
个对象的方式。
为了响应您的初始化:而不是GOPlayer paddle = new GOPlayer(0, Display.getHeight()/2 - GOPlayer.SIZEY/2, null);
,请执行paddle = new GOPlayer(0, Display.getHeight()/2 - GOPlayer.SIZEY/2, null);
,因为您似乎已经声明了paddle
,因为您似乎想要使用该字段(private GOPlayer paddle
)但是你创建了一个新的局部变量......