Witam,
w mojej aplikacji mam Timer, który przesuwa obrazek i chcę napisać "kolizję", czyli jeśli najedzie na inny obrazek, to wykonaj to i to...
Kod kolizji jest ok, bo sprawdzałem bez Timera itd..
Z tego co wyczytałem to problem "java.lang.NullPointerException", występuje, gdy chcemy się dostać do "nullowego" obiektu, jeśli dobrze to rozumiem.
Problem ten pojawia się losowo, nie raz wszystko działa jak powinno, a po np. trzecim uruchomieniu wywala błąd.
Kompilator informuje mnie, że błąd jest w ifie (wiem, że jest on dość zawiły), ale chyba nie tutaj problem.
Podejrzewam, że problem leży w tablicy brick[], jednak nie wiem gdzie on jest.
Kod tworzenia tablicy:
(Drawer to funkcja rysująca)
Drawer brick[]= new Drawer[12];
for(int i=0; i<brick.length; i++)
brick[i]=new Drawer("brick"); // każdy element, uzupełniam obrazkiem "brick"
Kod kolizji, gdzie wykorzystuje tablicę.
for(int i=0; i<brick.length;i++)
{
if( brick[i].name()=="brick" &&
go.getX()+go.getWidth()+5>=brick[i].getX()-1 &&
go.getX()+go.getWidth()<=brick[i].getX()-1 &&
(( go.getY()>=brick[i].getY() &&
go.getY()<=brick[i].getY()+brick[i].getHeight()) ||
( go.getY()+44>=brick[i].getY() &&
go.getY()+44<=brick[i].getY()
+brick[i].getHeight())))
{
go.setVisible(false);
brick[i].im("background");
}
}
}
Tutaj błąd:
Exception in thread "Timer-4" java.lang.NullPointerException
at Form$ReOpBall.run(Form.java:602)
at java.util.TimerThread.mainLoop(Unknown Source)
at java.util.TimerThread.run(Unknown Source)
Dzięki za wszelkie porady ;)