Hallo!
Zur Zeit bin ich dabei, ein kleines 2D-Spiel mit Java zu programmieren. Die gesamte Welt besteht aus "Tiles", momentan nur 64 x 64 Pixel große Grastexturen, welche aneinandergereiht sind und so eine Fläche bilder. Jedes dieser Tiles ist ein eigenes Objekt.
Nun wollte ich eine Funktion einbauen, welche es ermöglicht über das Maussrad rein bzw raus zu zoomen.
Das hier ist grundsätzlich mal der Code, mit dem ich versucht habe jedes einzelne Objekt zu skalieren, was jedoch einfach nicht so gut geklappt hat, beziehungsweise wahrscheinlich viel zu umständlich ist.
Gibt es irgendeine möglichkeit, einfach den gesamten Inhalt des JPanels zu skalieren?
Wie sollte ich so eine Zoom-Funktion am besten implementieren?
Danke schonmal!
Zur Zeit bin ich dabei, ein kleines 2D-Spiel mit Java zu programmieren. Die gesamte Welt besteht aus "Tiles", momentan nur 64 x 64 Pixel große Grastexturen, welche aneinandergereiht sind und so eine Fläche bilder. Jedes dieser Tiles ist ein eigenes Objekt.
Nun wollte ich eine Funktion einbauen, welche es ermöglicht über das Maussrad rein bzw raus zu zoomen.
Java:
final Dimension panelSize = parent.getSize();
final int width = panelSize.width;
final int height = panelSize.height;
final int imageWidth =
(int) (pics[currentpic].getWidth() * parent.getZoomfactor());
final int imageHeight =
(int) (pics[currentpic].getHeight() * parent.getZoomfactor());
final int imageX = width / 2 - imageWidth / 2;
final int imageY = height / 2 - imageHeight / 2;
final Image image = pics[currentpic].getScaledInstance(
imageWidth, imageHeight, Image.SCALE_SMOOTH);
Das hier ist grundsätzlich mal der Code, mit dem ich versucht habe jedes einzelne Objekt zu skalieren, was jedoch einfach nicht so gut geklappt hat, beziehungsweise wahrscheinlich viel zu umständlich ist.
Gibt es irgendeine möglichkeit, einfach den gesamten Inhalt des JPanels zu skalieren?
Wie sollte ich so eine Zoom-Funktion am besten implementieren?
Danke schonmal!