Ich habe versucht, dieses Problem für zwei Tage zu lösen, und ich habe es aufgegeben, eine vorhandene Lösung zu finden.Mehrere Kameras in libgdx (wahrscheinlich ähnlich in anderen Frameworks)
Ich habe angefangen zu lernen libgdx und beendete ein paar Tutorials. Und jetzt habe ich versucht, alles, was ich gelernt habe, zu verwenden und ein einfaches Side Scrolling-Spiel zu erstellen. Nun, ich weiß, dass es libgdx-Beispiele dafür gibt, aber ich habe keinen gefunden, der Box2d mit scene2d und Schauspielern sowie gekachelten Karten enthält.
Mein Hauptproblem ist mit den Kameras.
Sie benötigen eine Kamera für die Bühne (die soweit ich weiß, für die Projektionsmatrix der Spritebatch verwendet wird, um die Methode draw() übergeben an Schauspieler, wenn dies falsch ist bitte korrigieren Sie mich), und Sie benötigen eine Kamera für den TileMapRender zum Aufrufen der render() -Methode. Außerdem gibt es in einigen Tutorials eine OrthographicCamera im GameScreen, die bei Bedarf verwendet wird.
Ich habe versucht, ein OrthographicCamera-Objekt Methoden zu übergeben, ich habe versucht, die Kamera von der Bühne und die Kamera vom TileMapRenderer überall zu verwenden. Bsp.
OrthographicCamera ocam = new OrthographicCamera(FRUSTUM_WIDTH, FRUSTUM_HEIGHT);
stage.setCamera(ocam); // In the other cases i replace ocam with stage.getCamera() or the one i use for the tileMap Render
tileMapRenderer.render(ocam);
stage.getSpriteBatch().setProjectionMatrix(ocam.combined); // I am not sure if this is needed
Ich habe auch versucht, verschiedene Kameras überall zu verwenden.
Nachdem all dies versucht habe ich nicht bemerkt, was genau passiert, wenn aber ich werde Liste, was passiert:
- Es gibt nichts auf dem Bildschirm (Wahrscheinlich ist die Kamera weg von dem Zeug, das gezogen wird)
- Ich kann die gekachelte Karte und die Konturen vom debugRenderer sehen (Ich benutze auch debugRender, aber ich denke nicht, dass es die Kameras stört), aber das Sprite des Schauspielers ist nicht sichtbar (wahrscheinlich außerhalb des Bildschirms)
- Ich kann alles sehen, was ich sollte, aber wenn ich versuche, den Schauspieler und die Kamera, die ihm folgen soll, zu bewegen, sp Ritus geht schneller als der Körper (das grüne Debug-Quadrat).
Also meine Hauptfragen sind:
- Ich verstehe nicht, was passiert, wenn Sie mehrere Kameras haben. "Durch" welche siehst du eigentlich auf dem Montior?
- Sollte ich mehrere Kameras verwenden und wie?
Auch ich dachte, dass ich erwähnen sollte, dass ich OpenGL ES 2.0 verwende.
Es tut mir leid für die lange Frage, aber ich dachte, dass ich im Detail beschreiben sollte, da es ein bisschen kompliziert für mich ist.
genannt haben Sie stage.act() & stage.draw(), um die Bühne zu machen –