Non riesco a capire come ruotare correttamente un font Bitmap. Penso che tu modifichi la matrice di trasformazione dello SpriteBatch. Tuttavia, provando a ruotare che ruota il testo attorno ad un punto, e non so come ruotarlo rispetto al testo stesso.Disegna un BitmapFont ruotato in libgdx
risposta
si può provare il seguente codice:
Matrix4 mx4Font = new Matrix4();
BitmapFont font;
SpriteBatch spriteFont;
font = new BitmapFont(Gdx.files.internal("data/font/agencyFB.fnt"), Gdx.files.internal("data/font/agencyFB.png"), true); //must be set true to be flipped
mx4Font.setToRotation(new Vector3(200, 200, 0), 180);
spriteFont.setTransformMatrix(mx4Font);
spriteFont.begin();
font.setColor(1.0f, 1.0f, 1.0f, 1.0f);
font.draw(spriteFont, "The quick brown fox jumped over the lazy dog", 100, 110);
spriteFont.end();
È possibile creare un glifo in una sprite. In questo modo, puoi manipolare il tuo testo come uno sprite.
codice Esempio:
Nota, questo restituirà uno Sprite di un singolo glifo. (Eg char 'A' si trasforma in uno sprite.)
/** Creates a sprite from a glyph.
*
* @param ch
* @return Sprite
*/
public Sprite getGlyphSprite (char ch) {
Glyph glyph = Globals.g.font.getData().getGlyph(ch);
Sprite s = new Sprite(Globals.g.font.getRegion().getTexture(),
glyph.srcX,glyph.srcY,glyph.width, glyph.height);
s.flip(false, true);
s.setOrigin(glyph.width/2, glyph.height/2);
return s;
}
Non rispetta la larghezza e l'altezza del carattere, ad esempio se si prende un carattere "", non lo mostra in alto, se si imposta ch come spazio "", non rispetta la larghezza dello spazio . – LeSam
vorrei solo aggiungere .. suppongo immagine di base di carattere che hai dentro qualche atlante .. quindi è necessario aggiungere gli originali TextureRegion sot gliph src come è proprio rispetto a quella data regione Texture così
BitmapFont font = ...
BitmapFont.Glyph glyph = font.getData().getGlyph(ch);
int srcX = glyph.srcX + font.getRegion().getRegionX();
int srcY = glyph.srcY+ font.getRegion().getRegionY();
Sprite s = new Sprite(font.getRegion().getTexture(), srcX,srcY,glyph.width, glyph.height);
La prima risposta da Lunatikul non ha funzionato nel mio caso 2D. Taglia il mio testo a solo mezza lettera. Ero successo con il seguente:
batch.begin();
batch.setTransformMatrix(new Matrix4().setToRotation(0,0,1,<insert angle here>));
font.draw(batch, "Hallo Welt", 100, 100);
batch.end();
- 1. Libgdx come lanciare un BitmapFont?
- 2. Come disegnare un BitmapFont in LibGDX?
- 3. metodo Java LibGDX BitmapFont setScale non funziona
- 4. Come disegnare un bitmapfont su uno stage in libgdx?
- 5. Libgdx SpriteBatch disegna su StencilBuffer?
- 6. libGDX: testo multicolore in un'etichetta
- 7. LibGDX FreeType carattere sfocata
- 8. Disegna una linea liscia
- 9. Verificare se un punto è in un rettangolo ruotato (C#)
- 10. Disegno di un rettangolo ruotato
- 11. Disegna un rettangolo in Golang?
- 12. Come posso ruotare i rettangoli in Libgdx?
- 13. Come posso disegnare il testo usando Libgdx/Java?
- 14. Impossibile cambiare il colore del font in Libgdx
- 15. Calcolo dei vertici di un rettangolo ruotato
- 16. Come ottenere dimensioni di un rettangolo ruotato
- 17. Disegna un cerchio semplice in XNA
- 18. Disegna linea tratteggiata in un decoratore WPF
- 19. Disegna un cerchio vuoto in SVG
- 20. java Threads in libGDX
- 21. Che cos'è un tempo Delta in LIBGDX
- 22. Utilizzo di un database SQLite in Libgdx
- 23. CSS: destro allineare un testo verticalmente ruotato
- 24. Split-Screen in LibGDX
- 25. AssetManager in LibGDX
- 26. LibGdx GC_Corrente in esecuzione
- 27. Ridimensionamento di LibGDX FrameBuffer
- 28. GestureDetector in libgdx
- 29. DebugDrawing in libGDX
- 30. LIBGDX: Che cos'è un "viewport"?
Si dovrebbe approfondire il significato del vettore quando si fa setToRotation – chairbender
non ha funzionato per me, quello che mi manca qui? –