2016-06-14 9 views
0

Bitte, hilf mir. Ich versuche:FadeIn Action in LibGDX funktioniert nicht richtig

actor.addAction(Actions.fadeOut(1.5f)); 

ich: Alle meine Bühne ist ausblenden.

Also, meine Frage ist, warum verblassen nicht nur einen Schauspieler, für den ich fadeOut Aktion angewendet, sondern alle meine Bühne (oder zumindest einige andere Schauspieler)?

Mein Render:

@Override 
    public void render(float delta) { 
     Gdx.gl.glClearColor(255, 255, 255, 1); 
     Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 
     stage.draw(); 
     stage.act(); 
    } 

Vielen Dank für Ihre Antworten.

+1

Unrelated auf Ihre Frage, aber 'glClearColor' erwartet normalisiert Farben zwischen 0 und 1. – Tenfour04

Antwort

3

Jeder Akteur Klasse des eigenen muss seine eigene Farbe dem Ansatz anwenden. Dies ist nicht notwendig mit Dingen wie BitmapFont und Sprite, die farbige Scheitelpunkte direkt an den Stapel übergeben, aber jeder Akteur, der batch.draw aufruft, muss zuerst eine Farbe übergeben, auch wenn es Color.WHITE ist, aber normalerweise möchten Sie getColor() an den Stapel übergeben.

Dies liegt daran, dass nicht garantiert werden kann, welche Farbe in der Charge von zuvor gezeichneten Darstellern übrig geblieben ist.

Auch wenn Ihre Akteure in Gruppen sind, und Sie wollen, dass sie mit ihren Eltern verblassen, dann sollten sie Eltern alpha berücksichtigen:

Color color = getColor(); 
batch.setColor(color.r, color.g, color.b, color.a * parentAlpha); 
0

stellen Sie sicher, Implementierung ziehen Sie Ihre Schauspieler() ändert nicht die Farbe des Batch

+0

'@Override öffentliche Leere zeichnen (Batch Batch, float parentAlpha) { Batch.Zeichnung (cardTexture, getX(), getY(), getWidth(), getHeight()); super.draw (Batch, parentAlpha); } ' –

+0

erweitern Sie Schauspieler direkt? Dann können Sie super.draw löschen (Batch, parentalpha); ansonsten zeige mir diese Methode. – Barodapride

+0

In "actor.draw" gibt es keinen "Vertrag", bei dem Sie die Stapelfarbe weiß belassen müssen. Viele der eingebauten Widgets von LibGDX belassen den Stapel mit einer beliebigen Farbe. Stattdessen müssen Sie beachten, wenn Sie Actor ableiten, dass Sie nicht davon ausgehen können, dass der an "actor.draw" übergebene Stapel die Farbe "WHITE" hat. – Tenfour04