Es ist schon eine Weile her, seit ich LibGdx benutzt habe, also habe ich das Gefühl, dass ich etwas Offensichtliches vermisse.Libgdx SpriteBatch zeichnet Actors, aber keine anderen Texturen
Meine Render-Methode in MyGdxGame sieht so aus und fordert die Bühne auf, sich selbst (zusammen mit ihren Schauspielern) zu zeichnen, und dann versuche ich, eine Reihe von Texturen für Debugging-Zwecke zu zeichnen.
@Override
public void render()
{
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
StageManager.getCurrentStage().act();
spriteBatch.begin();
StageManager.getCurrentStage().draw();
for(int i = 0; i < 100; i++)
{
spriteBatch.draw(TextureManager.getPlayerTexture(), 50*i, 50*i);
}
}
Die Bühne ist mit ihrem einen Akteur gezeichnet, aber die anderen Texturen werden nicht gezeichnet.
Was ich versucht habe: Setzen Batch-Projektionsmatrix von der Bühne Kamera (nach dem Aufruf update
), stellen Sie sicher, dass die Textur Koordinaten sichtbar sein sollten.
Der Schauspieler bekommt seine Textur von der gleichen TextureManager.getPlayerTexture
, also denke ich nicht, dass es ein Texturproblem ist.
Worauf sollte ich noch achten, um die Texturen zu erhalten?
Ist dies Ihr tatsächlicher Code? Der Aufruf von 'spriteBatch.begin()' gefolgt von 'stage.draw()' löst eine RuntimeException aus. – Tenfour04
'stage.draw()' ruft intern 'begin' und' end' im Batch auf. Um zusätzliche Zeichen zu zeichnen, müssen Sie diese Zeichenaufrufe in 'begin()' und 'end()' einschließen. – Tenfour04
Seltsam. Es ist mein tatsächlicher Code, ich bekomme keine Ausnahme. Das Verschieben von batch.begin unterhalb des Zeichnungsaufrufs behebt das Problem jedoch. (Beitrag als Antwort also kann ich bitte annehmen) – DoubleDouble