Guten Tag,
ich in aktuell dabei ein Spiel zu Programmieren. Dazu habe ich ein JPanel erstellt in der Größe 5760x2160 in der befinden sich z.B. ein Hintergrundbild, Grafiken und dort sind auch Methoden, die das Spiel betreffen. Zum Beispiel kann eine Spielfigur (PNG Bild) über das Spielfeld bewegt werden. Das JPanel soll so gelassen werden, da sich Berechnung anhand der Größe errechnen.
Je nach "Spielgeschehen" soll ein bestimmter Auschnitt des JPanels gezeigt werden. Zum Beispiel wenn sich eine Spielfigur nach links bewegt soll der Ausschnitt auch nach links wandern. Die Höhe des Ausschnitts ist immer 1080 Pixel und die Breite richtet sich nach dem Bildschirmformat. Also z.B. bei 16:9 ist die Breite 1920 Pixel.
Dies habe ich aktuell mit einem JViewport realisiert, welches in einem JFrame angezeigt wird. Über setView habe ich das JPanel übergeben, mit setExtentSize die Größe des Ausschnitts gewählt und über setViewPosition die Position des Ausschnittes.
Nun habe ich jedoch ein Problem. Wenn das JFrame nun kleiner ist als 1920x1080, dann müsste das was im JViewPort angezeigt wird dementsprechend runterskaliert werden. Also nicht die Größe des Ausschnittes vom JPanel reduzieren, sondern das was "in JViewPort ist" muss auf die Größe des JFrames runterskaliert werden.
Wie bekomme ich dies realisiert?
Würde dies mit JScrollPane gehen (wenn ja, wie?). Hatte mich für JViewPort entschieden, da der Benutzer ja nicht scrollen soll, sondern der Ausschnitt durch das Spielgeschehen bestimmt wird.
Schon mal vorab, vielen Dank für die Hilfe
ich in aktuell dabei ein Spiel zu Programmieren. Dazu habe ich ein JPanel erstellt in der Größe 5760x2160 in der befinden sich z.B. ein Hintergrundbild, Grafiken und dort sind auch Methoden, die das Spiel betreffen. Zum Beispiel kann eine Spielfigur (PNG Bild) über das Spielfeld bewegt werden. Das JPanel soll so gelassen werden, da sich Berechnung anhand der Größe errechnen.
Je nach "Spielgeschehen" soll ein bestimmter Auschnitt des JPanels gezeigt werden. Zum Beispiel wenn sich eine Spielfigur nach links bewegt soll der Ausschnitt auch nach links wandern. Die Höhe des Ausschnitts ist immer 1080 Pixel und die Breite richtet sich nach dem Bildschirmformat. Also z.B. bei 16:9 ist die Breite 1920 Pixel.
Dies habe ich aktuell mit einem JViewport realisiert, welches in einem JFrame angezeigt wird. Über setView habe ich das JPanel übergeben, mit setExtentSize die Größe des Ausschnitts gewählt und über setViewPosition die Position des Ausschnittes.
Nun habe ich jedoch ein Problem. Wenn das JFrame nun kleiner ist als 1920x1080, dann müsste das was im JViewPort angezeigt wird dementsprechend runterskaliert werden. Also nicht die Größe des Ausschnittes vom JPanel reduzieren, sondern das was "in JViewPort ist" muss auf die Größe des JFrames runterskaliert werden.
Wie bekomme ich dies realisiert?
Würde dies mit JScrollPane gehen (wenn ja, wie?). Hatte mich für JViewPort entschieden, da der Benutzer ja nicht scrollen soll, sondern der Ausschnitt durch das Spielgeschehen bestimmt wird.
Schon mal vorab, vielen Dank für die Hilfe