Performanceprobleme meines Spiels

Braatbecker

Mitglied
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 ^^
 

Ebenius

Top Contributor
Ich würde das ganze in einer JTable aufbauen. Der Gedanke, das Spiel als HTML in ein JLabel zu packen ist eher ungünstig.

Ebenius
 

Braatbecker

Mitglied
Dieses Forum ruled einfach. So schnelle Antworten hab ich sonst noch nirgendwo bekommen ^^

Danke für die Lösung. JTable höre ich nun das erste Mal und hört sich sehr gut an. Auch gerade deshalb, weil ich Zugriff auf einzelne Zellen habe. Ich brauche jetzt noch etwas Zeit, um mich einzuarbeiten und den Code entsprechend umzuschreiben. Falls es noch weitere Probleme gibt, melde ich mich dann wieder.

Danke schön :)
 

Ähnliche Java Themen


Oben