Hi,
welches Layout benutzt ihr für Spiele, bzw. gibt es eins welches man benutzen sollte?
Ich habe bisher immer nur das null-Layout benutzt, aber dafür würden mich hier einige wohl am liebsten steinigen.
Das Spielfeld muss ja eigentlich fast immer eine feste Größe haben, ist es daher ok bei Spielen das null-Layout zu verwenden?
Wie kriege ich es hin das Fenster zwar dynamisch vergrößern/verkleinern zu können, aber die Verhältnisse immernoch stimmen?
Würde mich über Hilfe freuen, ich bin da immer ein bisschen ratlos.
Wenn du selbst in Panels zeichnest, ist der benutzte LayoutManager egal, weil er ja nicht benutzt wird.
Sobald aber im GLEICHEN Panel GUI-Komponenten eingebaut werden sollen, sollte auf jeden Fall ein geeigneter LayoutManager gewählt werden. Denn die Darstellung kann von OS zu OS variieren und so dein Layout komplett zerstören.
In den meisten Fällen, werden die ja ohnehin mit Panels verschachtelt.
Also kann ich das null-Layout verwenden?
Wie schaffe ich es denn dass es trotzdem skalierbar ist? Wenn es im Vollbildmodus oder in einem maximierten Fenster angezeigt werden soll muss es sich ja an die Bildschirmauflösung anpassen.
Nein, du hast nicht richtig gelesen! Sobald du GUI-Komponenten in deinen Oberflächen hast, solltest du LayoutManager verwenden. Den Standard-LayoutManager brauchst du zum benutzerdefinierten Zeichnen in einem Panel (überschreiben der paintComponent()-Methode ) nicht abschalten, weil dieser doch beim Zeichnen nicht verwendet wird. Der berechnet und positioniert NUR GUI-Komponenten.
Wenn du in einem Spiel die Oberfläche an die Auflösung des Monitors anpassen willst, musst du dies in die Berechnung der Zeichnungen einbeziehen.
Achso, ich dachte da gäbe es vielleicht einen Layout-Manager der das irgendwie automatisch skaliert.
Sorry, kenne mich mit Layouts noch nicht so gut aus, danke für die Tipps
Ich denke, eine entscheidene Frage ist, ob das “Spielfeld” aus Components besteht oder nicht. Wenn nicht, stellt sich die Frage nicht wirklich. Und wenn doch, müßte man wissen, ob es für die Spielfeldinhalte irgendwelche Anforderungen gibt (spontan und ganz speziell: Etwa ob irgendwelche Seitenverhältnisse gleich bleiben sollen)
Ich hab da eigentlich nicht viel mitzureden, aber ich gib mal trozdem meinen Senf dazu:
Ich finde man kann durchaus das null Layout benutzen wenn man denn alles genau durchplant.
Sagen wir mal man kann bei einem Spiel am Anfag die Fenstergrösse wählen.
Dann hat das zeichenpanel ja die selbe grösse wie das fenster. Wenn ersteres ein nulllayout hat kann man ja die positionen von Elementen einfach berechnen, zum Beispiel:
Eine Art “Item Chooser”, wie bei minecraft;
Geben wir diesem Ding eine immer Gleichbleibende Breite von 700px, weil die mindesgröses 800x600 ist
y position = panel.getHeight() - itemchooser.getHeight() - abstand;
x position = panel.getWidth() / 2 - itemchooser.getWidth() / 2;
Somit haben wir den itemchooser immer “an der selben Stelle”.