Parece que no puedo entender cómo rotar correctamente una fuente de mapa de bits. Creo que modificas la matriz de transformación del SpriteBatch. Sin embargo, al tratar de rotar, el texto gira alrededor de cierto punto y no sé cómo rotarlo en relación con el texto en sí.Dibuje un BitmapFont girado en libgdx
Respuesta
se puede probar el siguiente código:
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();
Se puede crear un glifo en un sprite. De esta manera, puede manipular su texto como un sprite.
código Ejemplo:
Nota, este devolverá un Sprite de un solo glifo. (Por ejemplo carbón 'A' se transforma en un 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;
}
No respeta el ancho ni la altura del carácter, por ejemplo, si toma un carácter "'", no lo muestra en la parte superior, si establece ch como un espacio "", no respeta el ancho del espacio . – LeSam
me acaba de añadir .. supongo imagen de base de fuente que tiene dentro de algunos atlas .. por lo que necesita para agregar originales TextureRegion Sot gliph src ya que es solo relativo a esa región de texturas dada así que
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 primera respuesta de Lunatikul no funcionó en mi caso 2D. Corta mi texto a solo media letra. Estaba exitosa con lo siguiente:
batch.begin();
batch.setTransformMatrix(new Matrix4().setToRotation(0,0,1,<insert angle here>));
font.draw(batch, "Hallo Welt", 100, 100);
batch.end();
- 1. ¿Cómo puedo dibujar texto usando Libgdx/Java?
- 2. Dibujar texto girado en un lienzo HTML5
- 3. Un panel cuadrado girado en Java GUI
- 4. ¿Cómo mostrar texto vectorizado usando libgdx?
- 5. Crear un UIImage desde un UIImageView girado
- 6. Dibuje un círculo con ggplot2
- 7. AssetManager en LibGDX
- 8. establece un retraso en el juego libgdx
- 9. Dibuje otra imagen en un UIImage
- 10. Dibuje un solo píxel en Windows Forms
- 11. AABB de sprite girado?
- 12. iPhone: ¿Dibujar texto girado?
- 13. Cálculo de vértices de un rectángulo girado
- 14. Cómo conseguir tamaño de un rectángulo girado
- 15. Determinar cuánto ha girado un CALayer
- 16. Comprobar si un punto está en un rectángulo girado (C#)
- 17. Dibujar un texto girado en una imagen en C#
- 18. hilos de java en libGDX
- 19. Acciones de Actores en libgdx
- 20. Dibuje una cruz en WPF
- 21. Python, dibuje un círculo con PIL
- 22. putImageData() en lienzo girado trabajo incorrecto
- 23. Sistema de partículas libGDX
- 24. libgdx o playn?
- 25. libgdx dentro Android Actividad
- 26. LibGDX SpriteBatch Multitexture posible?
- 27. Alineación de texto girado en C#
- 28. libgdx: escala de partículas
- 29. Dibuje una línea en un ángulo específico en Java
- 30. No se puede cambiar el color de la fuente en Libgdx
Usted debe elaborar sobre lo que significa el vector cuando se hace setToRotation – chairbender
no funcionó para mí, lo que me estoy perdiendo aquí? –