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.

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.

  • Multi-Plattform 2D-Spiel-Engine
  • Umschalten von AndEngine zu libgdx - was zu wissen?
  • Welches Spiel-Framework ist einfach zu entwickeln 2D-Spiel-App in Android?
  • Wie lernt man OpenGL ES 2.0? Ich verstehe es einfach nicht - ernst Qn.
  • Cocos2D OR libgdx für Android Game Development
  • Wie erstelle ich ein einfaches 2D Spiel für Android?
  • Android AndEngine: Behandlung von Kollisionserkennung richtig
  • 2D Cross-Plattform-Spiel-Engine für Android und iOS?
  • 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.