Hallo zusammen,
ich wollte ein Spiel in Java entwickeln und habe nun ein Problem mit den Threads ^.^
Zuerst lief es folgender maßen in meinem Code:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public Window extends JPanel implements Runnable
{
...
public void init(){
running = true;
new Thread(this).start();
}
public void run(){
...
while(running)
{
repaint();
}
}
paint(Graphics g){...}
}
|
bis hierhin läuft alles ohne Probleme...
nun wollte ich aber die Game loop auslagern d.h. ich habe nun "Window extends JPanel" und "Game implements runnable"
game erzeugt nun im Konstruktor :
|
C-/C++-Quelltext
|
1
|
Window gui = new Window();
|
und enthält natürlich:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
|
public void run(){
...
while(running)
{
gui.repaint();
System.out.println(UPS);
}
}
|
kommentiere ich gui.repaint(); aus wird das Fenster erstellt und ich kriege in der konsole die UPS angezeigt ... sobald ich nun gui.repaint() aufrufe kriege ich einen
|
C-/C++-Quelltext
|
1
2
3
|
Exception in thread "Thread-0" java.lang.NullPointerException
at Game.run(Game.java:68)
at java.lang.Thread.run(Unknown Source)
|
wiso klappt es wenn ich es in eine klasse packe aber sobald ich es aufteile gehts nicht mehr ? >.<