基本上我创建一个简单的游戏,我想界出现,但是当他们被印在屏幕上,他们不能相互重叠。创建对象并将其放入一个数组列表中,并且当创建另一个数组时,它需要检查其与列表列表中已有数据的坐标,以确保其不同。要检查的方法称为isCollidingWith,并且有一个实际设置位置的setPosition方法。这是我的。查找NullPointerException异常
这是如何创建对象,我甚至不能得到一个被创建,一旦我得到它的工作我会创造更多的这些对象,因此这整点。
Circle circle = new Circle(rng,circles);
circles.add(circle);
这是对象的构造函数需要一个随机数和圆阵列表。它以一个while循环,并为这个圈子的位置,然后它进入一个循环并检查它是否与其他的和碰撞,如果是,它打破并回到while循环的顶部和设置不同的位置,然后重复检查它是否与阵列列表中已有的其他位置发生碰撞。
public Planet(Random rng, ArrayList<Circle> circles){
boolean key = true;
while(key){
this.graphic.setPosition(rng.nextFloat()*GameEngine.getWidth(),rng.nextFloat()*GameEngine.getHeight());
for(int i = 0; i<circles.size();i++){
if(this.graphic.isCollidingWith(circles.get(i).graphic)){
key = true;
break;
}
else key = false;
}
}
}
问题是我不断收到一个NullPointerException在构造函数中它说this.graphic.setPosition的行。但我猜它与阵列列表有关,因为eclipse通常对于错误定位并不准确。如果有人能告诉我这里看起来有什么问题,那很好。
你在哪里初始化*** ***图形对象??? –
哇,从字面上看,我完全忘了初始化图形对象。哇,我觉得在过去的5个小时里一直盯着这个。非常感谢。 –