2012-03-12 18 views
14

Estoy usando BitmapFonts, LabelStyles y Labels para mis textos.Usando la misma fuente con diferentes tamaños en libgdx

Quiero cambiar el tamaño de algunas etiquetas, así que utilice este:

fontType.scale(-.6f); 

LabelStyle style = new LabelStyle(fontType, Color.WHITE); 

titleLabel = new Label("Points", style); 
titleLabel.setColor(Color.RED); 
titleLabel.x = 260; 
titleLabel.y = 310; 

Pero cuando quiero cambiar el tamaño de otra etiqueta, todas las etiquetas que contienen ese cambio de tamaño de fuente (creo un nuevo LabelStyle). Así que cambio el tamaño de la etiqueta en lugar de la fuente, pero eso no resuelve el problema, porque no cambia el tamaño de la etiqueta, ¿alguna idea?

Respuesta

14

Usted tendrá que crear BitmapFonts separadas y LabelStyle para cada etiqueta (o grupos de Etiquetas) si desea cambiar la escala de forma independiente.

Al marcar el código fuente libgdx, Label utiliza la referencia a BitmapFont de LabelStyle y lo pasa a BitmapFontCache utilizado internamente; no se realiza ninguna copia profunda en ningún punto, por lo que todos usan el mismo BitmapFont con el que creó LabelStyle.

+0

Creo que será la mejor opción:/aunque consume mucho tiempo crear bitmapfonts u.u gracias :) –

+0

es una pena que label.setScale() sea inútil. También creo que esta es la mejor solución, aunque es fea. Gracias por compartir. – Don

13

estoy usando libgdx 0.9.8 (ya que esto es una cuestión de edad), y cuando he creado una etiqueta como tal:

lblA = new Label("A", skinA); 

puedo cambiar el tamaño de la fuente de la que acaba de etiqueta con:

lblA.setFontScale(3); 

Esto no afecta a otras etiquetas que tengo que se crearon de la misma manera. He configurado algunas de mis etiquetas en la escala de fuentes (2), y esas están bien (no afectadas por (3)). Sin embargo, estoy descubriendo que el diseño de mi etiqueta no es tan 'independiente'. Necesitan tener su propio LabelStyle asignado; de lo contrario, obtendrás el comportamiento que estás indicando.

+0

A partir de libGDX 1.5.6 (si no es antes), el uso de 'setFontScale (float)' afecta a las etiquetas individualmente, incluso si comparten el mismo 'LabelStyle'. –

+0

@JamesSkemp ¿Hay algo así como un ajuste global para escalar todo? Todo se dibuja tan pequeño en un teléfono (más densidad de píxeles), pero eso también significa que puedo salirse con la tarea de dibujar la fuente 2 o incluso 3 veces más grande y ahorrar espacio en la textura. – Madmenyo

+0

Buena pregunta @MennoGouw - Me temo que no estoy seguro :(Si fuera yo, creo que crearía algún tipo de función global o 'LabelStyle'. –

Cuestiones relacionadas