Moin,
Ich habe bei meinem aktuellen Projekt ein kleines Problem mit den Panels, es sollte ziemlich offensichtlich sein:
Infos zum Problem:
Wenn man die Pausefunktion aktiviert (per Drücken der P-Taste), wird zusätzlich zum pausierten Spiel das Ganze noch visualisiert, indem das Spielfeld ausgegraut wird. Dies ist realisiert durch ein Panel, welches ich als pausePanel bezeichnet habe. Es ist die ganze Zeit vorhanden, jedoch nicht "sichtbar", da das Spielfeld-Panel dauerhaft repaintet wird. Bei aktivieren der Pause-Funktion wird einfach das pausePanel repainted damit es "drüber" liegt.
So, nun kommt es aber MANCHMAL dazu, dass dieser kleine Kasten, welcher ebenfalls durch ein eigenes Panel dargestellt wird, bei dem pausePanel mit erscheint, und ich bin absolut ratlos, woher das kommt, da diese beiden Panel rein gar nichts gemein haben... außer dass sie nunmal auf dem gleichen Frame liegen.
Genauere Erläuterung der Panels:
So werden sie zusammen auf das Frame gepackt.
Das pausePanel ist wie gesagt zuständig für das ausgegraute, sobald die Pause aktiviert wurde. Die Größe des Panels ist dementsprechend identisch mit der Spielfeldgröße.
Das scorePanel ist zuständig für die Labels (auch die Steuerung, daher sollte ich den Namen wohl demnächst ändern). Die Größe des score-Panels entspricht der weiß umrandeten Fläche an der rechten Seite (also ohne das Spielfeld)
Das gamePanel enthält das Spielfeld, und wird dementsprechend oft repainted. Die Größe entspricht exakt dem sichtbaren Spielfeld.
Das ntPanel ist das Panel, welches mir scheinbar die Probleme bereitet. Der Name steht für "NextTilePanel", da es sich hierbei um das kleine Kästchen handelt, in welchem angezeigt wird, welches Element als nächstes kommt. Es wird immer gleichzeitig mit dem gamePanel repainted.
Das bg Panel ist das background Panel. Es beinhaltet den schwarzen Hintergrund sowie die weißen Umrandungen etc.
Achja, und wenn es einmal vorgekommen ist, kann ich auch so oft ich will Pause drücken und wieder weg machen, es kommt immer wieder. Umgekehrt ebenso. Anders gesagt, entweder tritt es gar nicht auf, oder bei jedem Mal wo ich Pause drücke (bis ich das Programm halt beende)
Und ich frag mich nun einfach, wieso um alles in der Welt wird beim repaint() des pausePanels, das ntPanel oben links in die Ecke geklatscht...
So... falls es doch ein Code-basierter Fehler ist, und kein Denkfehler, werde ich noch Code posten..
lg
Ich habe bei meinem aktuellen Projekt ein kleines Problem mit den Panels, es sollte ziemlich offensichtlich sein:
Infos zum Problem:
Wenn man die Pausefunktion aktiviert (per Drücken der P-Taste), wird zusätzlich zum pausierten Spiel das Ganze noch visualisiert, indem das Spielfeld ausgegraut wird. Dies ist realisiert durch ein Panel, welches ich als pausePanel bezeichnet habe. Es ist die ganze Zeit vorhanden, jedoch nicht "sichtbar", da das Spielfeld-Panel dauerhaft repaintet wird. Bei aktivieren der Pause-Funktion wird einfach das pausePanel repainted damit es "drüber" liegt.
So, nun kommt es aber MANCHMAL dazu, dass dieser kleine Kasten, welcher ebenfalls durch ein eigenes Panel dargestellt wird, bei dem pausePanel mit erscheint, und ich bin absolut ratlos, woher das kommt, da diese beiden Panel rein gar nichts gemein haben... außer dass sie nunmal auf dem gleichen Frame liegen.
Genauere Erläuterung der Panels:
Java:
add(pausePanel);
add(scorePanel);
add(gamePanel);
add(ntPanel);
add(bg);
pack();
So werden sie zusammen auf das Frame gepackt.
Das pausePanel ist wie gesagt zuständig für das ausgegraute, sobald die Pause aktiviert wurde. Die Größe des Panels ist dementsprechend identisch mit der Spielfeldgröße.
Das scorePanel ist zuständig für die Labels (auch die Steuerung, daher sollte ich den Namen wohl demnächst ändern). Die Größe des score-Panels entspricht der weiß umrandeten Fläche an der rechten Seite (also ohne das Spielfeld)
Das gamePanel enthält das Spielfeld, und wird dementsprechend oft repainted. Die Größe entspricht exakt dem sichtbaren Spielfeld.
Das ntPanel ist das Panel, welches mir scheinbar die Probleme bereitet. Der Name steht für "NextTilePanel", da es sich hierbei um das kleine Kästchen handelt, in welchem angezeigt wird, welches Element als nächstes kommt. Es wird immer gleichzeitig mit dem gamePanel repainted.
Das bg Panel ist das background Panel. Es beinhaltet den schwarzen Hintergrund sowie die weißen Umrandungen etc.
Achja, und wenn es einmal vorgekommen ist, kann ich auch so oft ich will Pause drücken und wieder weg machen, es kommt immer wieder. Umgekehrt ebenso. Anders gesagt, entweder tritt es gar nicht auf, oder bei jedem Mal wo ich Pause drücke (bis ich das Programm halt beende)
Und ich frag mich nun einfach, wieso um alles in der Welt wird beim repaint() des pausePanels, das ntPanel oben links in die Ecke geklatscht...
So... falls es doch ein Code-basierter Fehler ist, und kein Denkfehler, werde ich noch Code posten..
lg
Zuletzt bearbeitet: