"Weltkarte" integrieren

Eich

Mitglied
Grüße,

im Rahmen eines größeren Projektes versuche ich momentan eine Weltkarte in ein Spiel zu integrieren. Mein bisheriger Ansatz ist es das Bild in ein JScrollpane zu packen damit ich alle Bereiche des Bildes (2000 x 2000 px) einsehen kann.

Bisher habe ich es nun dahingehend erweitert das man mit WASD auf der Karte scrollen kann. Bevor ich nun aber weiter arbeite wollte ich rückfragen ob das die einzige Möglichkeit ist mein Ziel zu erreichen oder es evtl. eine elegantere Methode gibt eine Weltkarte einzubinden welche man mit WASD verschieben kann.

Voraussetzung ist aber immer das ich noch in irgendeiner Art und Weise auf die Karte zeichnen kann um z.B. eine Spielerfigur darauf zu verschieben welche am richtigen Fleck bleibt wenn man die Karte verschiebt. Also nicht mit verschoben wird.

Da ich noch ein Neuling im Javabereich bin würde ich mich über Hinweise und Hilfe freuen.

Mfg Eich
 

The_S

Top Contributor
Kommt auf die konkreten Anforderungen an. Du kannst auf das Scrollpane verzichten (sieht bei einem Spiel imho nicht so toll aus), und das Bild selbst verschieben, indem du bspw. immer die Koordinaten beim Zeichnen des Bildes auf deiner Komponente verschiebst.
 

Quaxli

Top Contributor
Der Vorschlag von The_S hat den Vorteil, daß Du Deine Weltkarte in Tiles aufteilen kannst. Gezeichnet werden dann nur die Tiles die ganz oder teilweise (tileweise? :D) sichtbar sind. Das sollte die Sache auch etwas performanter machen.
Mal davon abgesehen, daß es ohne Scroll-Balken schöner aussieht. ;)
 

Eich

Mitglied
Hm klingt erstmal vernünftig. Ich nehme mal an das ich also auch negative Koordinaten zum painten angeben kann? Weil ich ansonsten ja nicht weiter nach rechts unten sehen kann wenn ich standardmäßig bei 0,0 anfange. Aber ich werde das mal probieren. Aufgrund der Tatsache das die relativen Koordinaten aber gleich bleiben müssen damit sich alles auf der Karte mit verschiebt ist es wohl besser einfach das ganze JPanel (auf welches das Bild gemalt wird) zu verschieben. Gute Idee werde ich testen.

Bezüglich der Scrollbalken, die habe ich natürlich entfernt ^^ Deswegen ja die WASD Steuerung.
 

Quaxli

Top Contributor
Nö, das Panel bleibt wo es ist. Du solltest die einzelnen Tiles verschieben und diese ggf. mit negative Koordinaten "painten".
 

Quaxli

Top Contributor
Nö, das Panel bleibt wo es ist. Du solltest die einzelnen Tiles verschieben und diese ggf. mit negative Koordinaten "painten".

<edit>
Du kannst ja mal in mein Tutorial gucken, da ist ein Beispiel. So ab Seite 110.
</edit>
 

Ähnliche Java Themen

Neue Themen


Oben