Wie zeichne ein Bitmapfont auf einer Bühne in libgdx?

Dies ist meine aktuelle Render-Methode auf meiner Ebene in meinem Libgdx-Spiel. Ich versuche, ein BitmapFont auf der rechten Ecke meiner Ebene zu zeichnen, aber alles was ich bekomme, ist ein Haufen weißer Boxen.

@Override public void render( float delta ) { Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); this.getBatch().begin(); //myScore.getCurrent() returns a String with the current Score font.draw(this.getBatch(), "Score: 0" + myScore.getCurrent(), 600, 500); stage.act(Gdx.graphics.getDeltaTime()); stage.draw(); this.getBatch().end(); } 

Ich möchte die Notenschrift in irgendeine Art von Schauspieler hinzufügen und dann eine Szene machen.addActor (myScore) aber ich weiß nicht, wie man das macht. Ich folgte Steigerts Tutorial, um die Hauptspielklasse zu erstellen, die die Szene, Schriftart, in der AbstractLevel-Klasse instanziiert, die dann auf dieser Ebene erweitert wird.

  • Com.android.ddmlib.AdbCommandRejectedException: Gerät offline (auch wenn das Gerät angeschlossen ist)
  • Android E-Mail-Absicht und Nachricht Körper
  • Wie bekomme ich Response von USSD Code von Android?
  • Styling Sherlock Action Bar Drop-Down-Elemente
  • Handler vs AsyncTask vs Thread
  • INSTALL_FAILED_MISSING_SHARED_LIBRARY Fehler in Android
  • So weit, ich benutze keine benutzerdefinierte Schriftart, nur die leere neue BitmapFont (); Auf Standard-Arial-Schriftart verwenden. Später möchte ich meine eigene fancy Schriftart verwenden.

  • Wie man einen Kreis mit Animation in Android mit Kreis Größe auf der Grundlage eines Wertes zu zeichnen
  • Der richtige Platz für das Setzen von MP3-Dateien in ein Android-Projekt
  • Android ohne Java
  • Was ist die Verwendung von Android Super Class?
  • Gradle: Nur Abhängigkeiten für die gewünschte Variante auflösen
  • Wie benutzt man lokale aarabhängigkeit?
  • 4 Solutions collect form web for “Wie zeichne ein Bitmapfont auf einer Bühne in libgdx?”

    Versuchen Sie, die font.draw nach dem stage.draw zu verschieben. Hinzufügen zu einem Schauspieler wäre sehr einfach, nur eine neue Klasse erstellen und erweitern Schauspieler wie so

     import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.scenes.scene2d.Actor; public class Text extends Actor { BitmapFont font; Score myScore; //I assumed you have some object //that you use to access score. //Remember to pass this in! public Text(Score myScore){ font = new BitmapFont(); font.setColor(0.5f,0.4f,0,1); //Brown is an underated Colour } @Override public void draw(SpriteBatch batch, float parentAlpha) { font.draw(batch, "Score: 0" + myScore.getCurrent(), 0, 0); //Also remember that an actor uses local coordinates for drawing within //itself! } @Override public Actor hit(float x, float y) { // TODO Auto-generated method stub return null; } } 

    Hoffe das hilft!

    Bearbeiten 1: Versuchen Sie auch System.out.println(myScore.getCurrentScore()); Nur um sicherzustellen, dass das nicht das Problem ist. Du kannst es einfach dazu bringen, einen Float oder einen Int zurückzugeben und wenn du das "Score:"+ Bit machst, wird es es zu einem String selbst machen

    Nun, in diesem Fall müssen Sie vielleicht this.getBatch().end anrufen. So was:

     mSpriteBatch.begin(); mStage.draw(); mSpriteBatch.end(); //Here to draw a BitmapFont mSpriteBatch.begin(); mBitmapFont.draw(mSpriteBatch,"FPS",10,30); mSpriteBatch.end(); 

    Ich weiß nicht warum, aber es funktioniert für mich.

    Ich habe ein ähnliches Problem mit weißen Schachteln gelöst, indem ich die Charge vor dem Start der Bühne schließe. Das ist, weil die stage.draw () eine weitere Charge startet und die vorherige Charge ungültig mit end () beendet hat.

    Also im aktuellen Beispiel würde ich this.getBatch () beenden.) Ende () vor dem Bühnenbild:

      ... font.draw(this.getBatch(), "Score: 0" + myScore.getCurrent(), 600, 500); this.getBatch().end(); stage.act(Gdx.graphics.getDeltaTime()); stage.draw(); } 

    Wenn Sie Scene2D verwenden, versuchen Sie es mit Bühnen und Schauspielern. Es gibt keine Notwendigkeit, lange Codes zu schreiben, für das MTX-Plugin zu überprüfen, das sehr einfach zu bedienen ist. Sie können eine großartige Benutzererfahrung erstellen

    http://moribitotechx.blogspot.co.uk/

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.