So ich habe ein großes Problem.
Ich programmier gerade eine 2 Dimensionales Rundenbasiertes Strategiespiel das nur rein Netzwerkfähig ist.
Werde in punkto Performance hier vielciht bald noch einmal 1-2 Thread eröffnen müssen,
aber ansonsten läuft es eigentlich schon sehr gut.
Nun möchte ich mich dem Design zuwenden, das Spielfeld besteht aus n*m Felder (12*15 oder os) die alle nachher via MouseListener ancklickbar sind. Die Felder sind abgeleitete aus Label oder Cnavas (is ja auch wurscht) und besitzen eine größe von 50*50 Pixeln.
Wie gesagt, das hat bis jetzt auch schon alles wunderbar geklappt, doch möchte ich mich nun dem Design zuwenden.
Das Spielfeld liegt übrigens in nem Panel mit nem 'null'-Layout auf einem Frame das im Vollbildmodus gestartet wird, was aber auch noch manchmal einige Probleme beinhaltet (beim minimieren kann ich z.B: das Programm nicht mehr in der Taskleite sehen etc. Dies aber jedoch auch nicht immer)
Das Spiel spielt in einem Sci-Fi Universum und ich möchte das Spielfeld in einen Monitor einbette (Design).
Aus diesem Grund habe ich mir eine Monitor-pic erstellt dies aus Canvas abgeleitet ...etc.
Nach meiner Logig müsste ich zuerst den Monitor in den Hintergreund packen, also zuerst drauf legen und danch das Spielfeld drüber legen.
Als ich dies tat, sah ich komischerweise den Montitor über dem Spielfeld liegen. Oder ich kontne das Spielfeld einfach nicht erkennen sondern nur den Monitor.
Dann habe ich es anders versucht, da der Monitor in seinem Zentrum eine leere Fläche beinhaltet also die Anzeigefläche eine transparente Fläche ist und das Bild ein gif ist, habe ich den Monitor einfach einmal über das Spielfeld gelegt.
Jetzt ging es komischerweise. (Warum nicht anders? Wäre nett wenn ihr mir dies einmal erläutern könntet).
Die Sache ist nur die das meine Spielfeld sehr dynamisch gehalten wird, also das ab und zu ein paar Felder per remove(Component c) gelöscht werden und durch andere ersetzt werden und diese dann platziert werden. Nun sehe ich dann leider gar nichts sondern nur, den Hintergrund des Fensters. Also der Vorgang des Löschens funktionierte noch doch sehe ich komischerweise/mysteriöserweise die neuen Componenten nicht mehr die ja durch das neue 'Adden' auf dem Monitor leigen müssten, was ja wiederum vorher auch nicht geklappt hat ( Also zuerts den Monitor setzen).
Der Monitor wird in das selbige Panel gesetzt, ich könnte mir vorstellen, das es funktionieren würde, wenn ich den Monitor unter das Panel des Spielfelds legen würde, da das Panel ja nicht ständig neu gesetzt werden muss.
Doch hänge ich schon so ziemlich lange dran und möchte dies einfach so schaffen, da es mir gegen die Java-Logik verstößt und es einfach so funktionieren müsste. Bitte helft mir.
Achja repaint() etc. hilft auch nicht weiter.
Mit validate() und invalidate() konnte ich einen kleinen erfolg sehen.Doch ich würde einfach gerne wissen warum es nicht so funktioniert.
Ich habe jetzt keine Codebeispiele dran gehangen, da es einfach nur noch komplexe und komplizierte Algorithmen sind.
Die einfach in Ihrer Gesamtheit kompliziert sind (Sehr viele Referenzen, rekursiv etc.)
Aus diesem Grund habe ich auch so viel geschrieben um es euch möglichst verständlich zu machen.
mfg GagamehlO
Ich programmier gerade eine 2 Dimensionales Rundenbasiertes Strategiespiel das nur rein Netzwerkfähig ist.
Werde in punkto Performance hier vielciht bald noch einmal 1-2 Thread eröffnen müssen,
aber ansonsten läuft es eigentlich schon sehr gut.
Nun möchte ich mich dem Design zuwenden, das Spielfeld besteht aus n*m Felder (12*15 oder os) die alle nachher via MouseListener ancklickbar sind. Die Felder sind abgeleitete aus Label oder Cnavas (is ja auch wurscht) und besitzen eine größe von 50*50 Pixeln.
Wie gesagt, das hat bis jetzt auch schon alles wunderbar geklappt, doch möchte ich mich nun dem Design zuwenden.
Das Spielfeld liegt übrigens in nem Panel mit nem 'null'-Layout auf einem Frame das im Vollbildmodus gestartet wird, was aber auch noch manchmal einige Probleme beinhaltet (beim minimieren kann ich z.B: das Programm nicht mehr in der Taskleite sehen etc. Dies aber jedoch auch nicht immer)
Das Spiel spielt in einem Sci-Fi Universum und ich möchte das Spielfeld in einen Monitor einbette (Design).
Aus diesem Grund habe ich mir eine Monitor-pic erstellt dies aus Canvas abgeleitet ...etc.
Nach meiner Logig müsste ich zuerst den Monitor in den Hintergreund packen, also zuerst drauf legen und danch das Spielfeld drüber legen.
Als ich dies tat, sah ich komischerweise den Montitor über dem Spielfeld liegen. Oder ich kontne das Spielfeld einfach nicht erkennen sondern nur den Monitor.
Dann habe ich es anders versucht, da der Monitor in seinem Zentrum eine leere Fläche beinhaltet also die Anzeigefläche eine transparente Fläche ist und das Bild ein gif ist, habe ich den Monitor einfach einmal über das Spielfeld gelegt.
Jetzt ging es komischerweise. (Warum nicht anders? Wäre nett wenn ihr mir dies einmal erläutern könntet).
Die Sache ist nur die das meine Spielfeld sehr dynamisch gehalten wird, also das ab und zu ein paar Felder per remove(Component c) gelöscht werden und durch andere ersetzt werden und diese dann platziert werden. Nun sehe ich dann leider gar nichts sondern nur, den Hintergrund des Fensters. Also der Vorgang des Löschens funktionierte noch doch sehe ich komischerweise/mysteriöserweise die neuen Componenten nicht mehr die ja durch das neue 'Adden' auf dem Monitor leigen müssten, was ja wiederum vorher auch nicht geklappt hat ( Also zuerts den Monitor setzen).
Der Monitor wird in das selbige Panel gesetzt, ich könnte mir vorstellen, das es funktionieren würde, wenn ich den Monitor unter das Panel des Spielfelds legen würde, da das Panel ja nicht ständig neu gesetzt werden muss.
Doch hänge ich schon so ziemlich lange dran und möchte dies einfach so schaffen, da es mir gegen die Java-Logik verstößt und es einfach so funktionieren müsste. Bitte helft mir.
Achja repaint() etc. hilft auch nicht weiter.
Mit validate() und invalidate() konnte ich einen kleinen erfolg sehen.Doch ich würde einfach gerne wissen warum es nicht so funktioniert.
Ich habe jetzt keine Codebeispiele dran gehangen, da es einfach nur noch komplexe und komplizierte Algorithmen sind.
Die einfach in Ihrer Gesamtheit kompliziert sind (Sehr viele Referenzen, rekursiv etc.)
Aus diesem Grund habe ich auch so viel geschrieben um es euch möglichst verständlich zu machen.
mfg GagamehlO