在我的游戏世界课程中,我希望我的所有敌人都使用一个名为Fighters的超级类。
public Array<Fighters> enemies;
我在我的游戏世界的构造函数中初始化它。
enemies = new Array<Fighters>();
这是战士超级班。
public class Fighters {
protected Vector3 position;
protected Vector3 velocity;
protected Texture texture;
public Vector3 getPos() {
return position;
}
public Vector3 getVelocity() {
return velocity;
}
public Texture getTexture() {
return texture;
}
public void setPos(Vector3 newPos) {
position = newPos;
}
}
一个类是Fighters的子类。
public class RedFighter extends Fighters {
public static final int value = 1;
public RedFighter() {
position = new Vector3(-10, -10, 0);
velocity = new Vector3(0, -10, 0);
texture = new Texture("redfighter.png");
}
}
当我调用一个名为spawn enemies的方法时,它应该用红色战士填充数组。但是,当我尝试添加它时,我不断收到NullPointException。
Fighters fighter;
fighter = new RedFighter();
enemies.add(fighter);
我做错了什么,我该如何解决?谢谢!
答案 0 :(得分:0)
我明白了!
事实证明,我的游戏世界并没有真正的构造函数。我没有使用公共GameWorld()作为我的声明,而是使用public void GameWorld(),因此它并不知道它是我的构造函数。我意识到我应该发布全班。非常感谢大家!我确保下次发布相关内容。
至于Array来自何处,它是来自libgdx库的数组。