Isometrische Map Zoomen

Tiim

Mitglied
Hallo Zusammen

Für meinem Isometrischen Mapeditor muss ich die Karten unbedingt zoomen können.
Das geht auch, aber die Karte verschiebt sich dabei. Wie kann ich es machen, die Karte immer in die Mitte hin zoomt?

Gegeben ist der alte Zoom, den Offset X und Y und der neue Zoom, und natürlich die Grösse des Views

gerendert wird folgendermasen:
Java:
public void draw(final Map map, final Rectangle viewport, final Graphics2D g) {
    g.translate(translationX,translationY);
    g.scale(zoom,zoom);
    //Render Tiles
}

Geändert werden soll nur der Offset.

Irgendwie bekomme ich es einfach nicht hin. Kann mir jemand erklären wie man das normalerweise macht? Oder evtl. sogar, wie man zum Mauszeiger zoomen kann, wenn dessen Position auf der View gegeben ist.
 
F

Firephoenix

Gast
Ich hab meinen Zoom so gelöst, das nach jedem zoom-Schritt die Map auf den Mauszeiger zentriert wird.

Das zentrieren selber ist relativ einfach:

Finde die Weltposition er Bildschirmmitte, finde die Weltposition deines Mauszeigers und verschiebe dann den View so, das die Mauszeiger-Welt-Position an der Bildschirmmitte ist.

Gruß
 

Ähnliche Java Themen


Oben