Hallo,
mein Spiel funktioniert momentan so wie ich es will, nur erschreckend langsam. Geschätzt knapp über eine Sekunde pro Zug. Ist zwar spielbar, aber es nervt. Nun hätte ich eine theoretische Frage dazu, wie ich die Performance verbessern könnte. Das Problem liegt definitiv in der GUI, da es ohne GUI schnell läuft
Meine Vorgehensweise:
Das Spielfeld besteht aus einem Objekte[][]. Jedes Objekt des Spieles erbt von Objects und hat eben verschiedene Eigenschaften. Feinde, Wände, Boden, etc
Dieses Spielfeld wird aus einer map-Datei ausgelesen und daraus der Array erstellt. Aus dem Array wird ein String gebildet, welcher Html-Code (<table>) inklusive der Pfade zu den Bilddateien enthält. Die Gui wird gebaut und dem JLabel dieser String als Inhalt verpasst.
Nach jedem Zug muss ein neuer String erstellt werden, das Label gelöscht und neu erstellt werden. Und genau hier wird das Problem liegen.
Ich sehe keine Möglichkeit , nur einen Teil der Tabelle, also des Spielfelds, zu verändern, weil das Label immer komplett neu erstellt werden muss, wenn sich etwas ändert. Außerdem sehe ich aufgrund der Tatsache, dass es in Java keine Referenzierung gibt keine Möglichkeit die Bilder vorzuladen, sondern das Label muss jede Textur immer wieder neu einladen. Die Möglichkeit, für jedes Feld ein Label zu erstellen, wird warscheinlich auch zu umständlich, bzw. zu speicherintensiv sein (oder nicht?)
Vielleicht habe ich auch eine Möglichkeit übersehen?
Hier ein Bild meines Spiels zum Visualisieren. Stört euch nicht an den komischen Bildchen. Die werden noch gescheit gemalt ^^
mein Spiel funktioniert momentan so wie ich es will, nur erschreckend langsam. Geschätzt knapp über eine Sekunde pro Zug. Ist zwar spielbar, aber es nervt. Nun hätte ich eine theoretische Frage dazu, wie ich die Performance verbessern könnte. Das Problem liegt definitiv in der GUI, da es ohne GUI schnell läuft
Meine Vorgehensweise:
Das Spielfeld besteht aus einem Objekte[][]. Jedes Objekt des Spieles erbt von Objects und hat eben verschiedene Eigenschaften. Feinde, Wände, Boden, etc
Dieses Spielfeld wird aus einer map-Datei ausgelesen und daraus der Array erstellt. Aus dem Array wird ein String gebildet, welcher Html-Code (<table>) inklusive der Pfade zu den Bilddateien enthält. Die Gui wird gebaut und dem JLabel dieser String als Inhalt verpasst.
Nach jedem Zug muss ein neuer String erstellt werden, das Label gelöscht und neu erstellt werden. Und genau hier wird das Problem liegen.
Ich sehe keine Möglichkeit , nur einen Teil der Tabelle, also des Spielfelds, zu verändern, weil das Label immer komplett neu erstellt werden muss, wenn sich etwas ändert. Außerdem sehe ich aufgrund der Tatsache, dass es in Java keine Referenzierung gibt keine Möglichkeit die Bilder vorzuladen, sondern das Label muss jede Textur immer wieder neu einladen. Die Möglichkeit, für jedes Feld ein Label zu erstellen, wird warscheinlich auch zu umständlich, bzw. zu speicherintensiv sein (oder nicht?)
Vielleicht habe ich auch eine Möglichkeit übersehen?
Hier ein Bild meines Spiels zum Visualisieren. Stört euch nicht an den komischen Bildchen. Die werden noch gescheit gemalt ^^