karl-alfons
Grünschnabel
Hi,
ich bin nun schon seit langen auf der Lösung für ein Problem. Konnte nirgends eine Lösung oder Idee finden die mich weiter gebracht hätte. Vielleicht findet sich ja hier jemand der mir helfen kann?
Das Problem:
Ich möchte eine Karte erstellen mit hexagonalen Feldern, änlich einem Siedler-Spiel. D.h. ich habe nur ca. 10 verschiedene Hexagone, die sollen aber mehrfach (auch schon 100000 mal) gezeichnet /angezeigt werden. Die Karte soll dann aber auch mit der Maus verschiebar und mit dem Mausrad skalierbar sein. Ich habe nun zwei Methoden ausprobiert (komm ich gleich zu) und jede hat einen Nachteil, den ich nicht akzeptieren kann und suche nun nach der Lösung diese zu beheben.
1. Methode:
Ich zeichne alle meine Hexfelder in ein BufferedImage, welches ich vorher erzeugt habe und lasse es dann anzeigen. Danach kann ich es sehr schnell bewegen und skalieren. Jedoch ist der Speicherverbrauch enorm, da er ja das ganze Bild im Speicher halten muss. Hier müsste ich irgendwie den Speicherverbrauch in den Griff bekommen.
2. Methode:
Ich zeichne in einer for-Schleife die Felder einzeln, nacheinander, direkt auf den Monitor. Dauert natürlich bei großen Karten ewig (auch hier wären ja 1,2 Sekunden schon zu lange, wenn man die Karte nur ein Feld weiter nach links schieben will, bzw. skalieren will. Aber es dauert eh viel länger). Der Speicherverbrauch ist allerdings akzeptabel.
Ich weiß nicht ob ich was übersehen habe, ob es vielleicht gar nicht funktionieren kann, ob die Idee nichts taugt oder sonst was. Falls ihr noch was braucht an Infos, reiche ich die gerne nach...
Vielen Dank schon mal
Gruß
ich bin nun schon seit langen auf der Lösung für ein Problem. Konnte nirgends eine Lösung oder Idee finden die mich weiter gebracht hätte. Vielleicht findet sich ja hier jemand der mir helfen kann?
Das Problem:
Ich möchte eine Karte erstellen mit hexagonalen Feldern, änlich einem Siedler-Spiel. D.h. ich habe nur ca. 10 verschiedene Hexagone, die sollen aber mehrfach (auch schon 100000 mal) gezeichnet /angezeigt werden. Die Karte soll dann aber auch mit der Maus verschiebar und mit dem Mausrad skalierbar sein. Ich habe nun zwei Methoden ausprobiert (komm ich gleich zu) und jede hat einen Nachteil, den ich nicht akzeptieren kann und suche nun nach der Lösung diese zu beheben.
1. Methode:
Ich zeichne alle meine Hexfelder in ein BufferedImage, welches ich vorher erzeugt habe und lasse es dann anzeigen. Danach kann ich es sehr schnell bewegen und skalieren. Jedoch ist der Speicherverbrauch enorm, da er ja das ganze Bild im Speicher halten muss. Hier müsste ich irgendwie den Speicherverbrauch in den Griff bekommen.
2. Methode:
Ich zeichne in einer for-Schleife die Felder einzeln, nacheinander, direkt auf den Monitor. Dauert natürlich bei großen Karten ewig (auch hier wären ja 1,2 Sekunden schon zu lange, wenn man die Karte nur ein Feld weiter nach links schieben will, bzw. skalieren will. Aber es dauert eh viel länger). Der Speicherverbrauch ist allerdings akzeptabel.
Ich weiß nicht ob ich was übersehen habe, ob es vielleicht gar nicht funktionieren kann, ob die Idee nichts taugt oder sonst was. Falls ihr noch was braucht an Infos, reiche ich die gerne nach...
Vielen Dank schon mal
Gruß