Exception in thread "Thread-1" java.lang.NullPointerException
at java.awt.Rectangle.intersects(Rectangle.java:786)
at Robotron.intersecting(Robotron.java:182)
at Robotron.run(Robotron.java:349)
at java.lang.Thread.run(Thread.java:745)
Проблема заключается здесь:Null указатель в пересекающей метод с массивами (Java)
public void intersecting(Sprite r1, Sprite r2)
{
System.out.println("The grunts isAlive is: "+r1.isAlive+" his xpos is: "+r1.rec.x+" his ypos is: "+r1.rec.y);
if(r1.rec.intersects(r2.rec) && r1.isAlive==true && r2.isAlive==true)
{
r1.isAlive=false;
r2.isAlive=false;
}
}
Выход моего System.out является: The grunts isAlive is: true his xpos is: 936 his ypos is: 478
. Но по какой-то причине он дал мне нулевую указатель
Вот как я инициализирую свои Грунты, может быть, проблема там?
for(int i=0; i<grunt.length;i++)
{
int randX = (int)(Math.random()*worldx);
int randY = (int)(Math.random()*worldy);
if(hero.outerCircle.inCircle(randX,randY)!=true)
{
grunt[i] = new EnemyD4(randX,randY, worldx, worldy, 50,70);
}
if(hero.outerCircle.inCircle(randX,randY)==true)
{
randX+=100;
grunt[i] = new EnemyD4(randX,randY, worldx, worldy, 50,70);
}
}
как вы называете '' 'intersecting()' ''? –
Где встречается исключение нулевого указателя? – CMPS
одной из возможных причин является то, что потоки и основная программа выполняются отдельно. Но опять же, покажите нам полный (прокомментированный) код, чтобы понять проблему. – Atieh