Java Android游戏产卵激光精灵
在这个游戏中,我试图在给定的坐标下产生多个激光,但由于某些原因,每当numLasers大于1时,应用程序就会崩溃。我什么都试过了,我真的需要一些帮助 这是我的密码:Java Android游戏产卵激光精灵,java,android,eclipse,sprite,Java,Android,Eclipse,Sprite,在这个游戏中,我试图在给定的坐标下产生多个激光,但由于某些原因,每当numLasers大于1时,应用程序就会崩溃。我什么都试过了,我真的需要一些帮助 这是我的密码: public class LaserSpawn { private int amountOfVisibleLasers; private Context context; private long timeLastCreatedLaser; private Laser[] holderLaser;
public class LaserSpawn {
private int amountOfVisibleLasers;
private Context context;
private long timeLastCreatedLaser;
private Laser[] holderLaser;
public LaserSpawn(Context context, int numLasers){
this.context = context;
holderLaser = new Laser[numLasers];
this.amountOfVisibleLasers = numLasers;
for(int i = 0; i< numLasers; i++){
holderLaser[0] = new Laser(context, -10, -10);
}
}
public void updatePlayerLaser(boolean shootLaser, float x, float y) {
// Check if a new Laser should be created
if(shootLaser == true) {
if(timeLastCreatedLaser + 100 < System.currentTimeMillis()) {
timeLastCreatedLaser = System.currentTimeMillis();
boolean createdNewLaser = false;
for(int i = 0; i < this.amountOfVisibleLasers; i++) {
if(createdNewLaser == false) {
if(holderLaser[i].isDisposed()) {
this.generateNewLaser(i,x,y);
createdNewLaser = true;
}
}
}
}
}
// Update all the other Lasers
for(int i = 0; i < this.amountOfVisibleLasers; i++) {
if(holderLaser[i].isDisposed() == false) {
holderLaser[i].update();
}
}
}
private void generateNewLaser(int i, float x, float y) {
holderLaser[i].setY(y);
holderLaser[i].setX(x);
}
公共类激光兵{
私人可看见激光器;
私人语境;
私人长时间激光器;
私人激光器;
公共激光兵(上下文,整数激光兵){
this.context=上下文;
holderLaser=新激光器[numlaser];
这个。amountOfVisibleLasers=numLasers;
对于(int i=0;i
谢谢!我敢肯定这是你的问题:
holderLaser[0] = new Laser(context, -10, -10);
您只能在阵列的第一个位置创建一个新激光器
。如果您尝试访问第二个激光器,则会出现空指针异常
应该是这样的
holderLaser[i] = new Laser(context, -10, -10);
我很确定这是你的问题:
holderLaser[0] = new Laser(context, -10, -10);
您只能在阵列的第一个位置创建一个新激光器
。如果您尝试访问第二个激光器,则会出现空指针异常
应该是这样的
holderLaser[i] = new Laser(context, -10, -10);
你应该查看LogCat以了解其崩溃的原因。你能找到并发布堆栈跟踪吗?如果我的答案有帮助并解决了问题,请单击旁边的勾号接受。你应该查看LogCat以了解其崩溃的原因。你能找到并发布堆栈跟踪吗?如果我的答案有帮助并解决了问题,请接受通过单击它旁边的勾号,我可以从代码中看到的另一件事是,如果holderLaser[I]还没有被实例化。如果你给出崩溃的原因,这会容易得多。你能编辑你的问题以包含它崩溃的地方的LogCat输出吗。这会有很大帮助。我从你的代码中看到的唯一一件事是,如果holderLaser[I]的话,你的generateNewLaser()方法可能会崩溃还没有被实例化。如果你给出它崩溃的原因会容易得多。你能编辑你的问题以包括它崩溃的地方的LogCat输出吗。这会有很大帮助。