LibGDX - Bühne.setViewport(new Viewport()) schwarzer Bildschirm
Für die Organisation Willen, ich mehrere Szenen für mein Spiel und anstatt jede Szene haben einen Konstruktor, der erhält einen Viewport (mein Spiel ist skalierbar), würde ich mag, um jede Bühne viewport getrennt von den Konstruktor, die dann nach der viewport festgelegt wurde, fügen Sie die Akteure. In der main-Klasse, würde es so geschieht:
public void setStage(Stage s)
{
if(currentStage != null)
currentStage.dispose();
currentStage = s;
currentStage.setViewport(view);
}
Machen, diese gehen fließend, jede Stufe hat eine init-Methode, die aufgerufen wird, innerhalb eines übersteuerten setViewport:
@Override
public void setViewport(Viewport v)
{
super.setViewport(v);
init();
}
Aber all dies gibt mir ein schwarzer Bildschirm... ich habe versucht, die Aktualisierung der Kamera und viewport, aber ohne Erfolg (beachten Sie, dass die Akteure mit Ihren render-Methoden genannt).
Warum bin ich immer dieser schwarze Bildschirm und wie kann ich es beheben? Wenn es nicht möglich ist, werde ich einfach wieder mit dem Konstruktor.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn ich das richtig verstanden, Sie wollen, dies zu tun:
vielmehr als das:
Im ersten Fall (dem, was Sie versuchen zu tun) ein ScalingViewport werden costructed automatisch für Sie mit den Abmessungen des Gdx.Grafiken und eine orthogonale Kamera und wirkt wie ein StretchViewport. Warum nicht mit dem zweiten Fall direkt dort, wo Sie passieren die Ansichtsfenster, die Sie wollen. Sie können immer ändern Sie Ihre Ansichtsfenster, Wann immer Sie wollen, durch aufrufen
stage1.getViewport().update(width, height);
werden, oder durch Aufruf
stage1.setViewport(width, height, false);
bei älteren Libgdx Versionen.Viewport hat sich vor kurzem verändert, so dass, wenn Sie erweitern Viewport-Klasse zum Überschreiben der update-Methode vielleicht können Sie erreichen, was Sie wollen:
}
Aus deiner main-Klasse erstellen Sie neue Bühne :
und dann rufen Sie :
Wie diese können Sie verändern Bühne viewport und neu initialisieren Ihres Vermögens.
Dies funktioniert, aber Sie sollten auch in der Lage sein, aktualisieren Sie die Ansichtsfenster wie, dass zu Beginn der Anwendung, wenn Sie weiterhin die gleiche. Ich habe die position, dass statt der Zentrierung, weil einige meiner Stufen, die größer als der Bildschirm.