2012-03-12 1 views
14

Sto usando BitmapFonts, LabelStyles ed etichette per i miei testi.Utilizzo dello stesso carattere con dimensioni diverse in libgdx

voglio ridimensionare alcune etichette, in modo da utilizzare questo:

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; 

Ma quando voglio ridimensionare un'altra etichetta, tutte le etichette contenenti tale ridimensionamento dei caratteri (creo un nuovo LabelStyle). Quindi ridimensiono l'etichetta al posto del font, ma questo non risolve il problema, perché non ridimensiona l'etichetta, nessuna idea?

risposta

14

Sarà necessario creare BitmapFonts e LabelStyle separati per ogni etichetta (o gruppi di etichette) se si desidera ridimensionarli in modo indipendente.

Dal controllo del codice sorgente libgdx, Label utilizza il riferimento a BitmapFont da LabelStyle e lo passa a un BitmapFontCache utilizzato internamente; nessuna copia profonda viene creata in qualsiasi momento, quindi tutti utilizzano lo stesso BitmapFont con cui hai creato LabelStyle.

+0

Penso che sarà l'opzione migliore:/anche se consuma molto tempo creando i bitmapfonts u.u grazie :) –

+0

un peccato che label.setScale() sia inutile. Penso anche che questa sia la soluzione migliore, anche se è brutta. Grazie per la condivisione. – Don

13

Sto usando libgdx 0.9.8 (poiché questa è una vecchia questione), e quando ho creato un'etichetta come tale:

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

posso ridimensionare il carattere del proprio questo un'etichetta con:

lblA.setFontScale(3); 

Ciò non influisce sulle altre etichette che ho creato allo stesso modo. Ho impostato alcune delle mie etichette su scala caratteri (2), e quelle sono OK (non influenzate dal (3)). Tuttavia, trovo che lo stile della mia etichetta non sia "indipendente". Devono avere il proprio LabelStyle assegnato, altrimenti si ottiene il comportamento che si sta affermando.

+0

A partire da libGDX 1.5.6 (se non prima), l'uso di 'setFontScale (float)' influisce sulle etichette individualmente, anche se condividono lo stesso 'LabelStyle'. –

+0

@JamesSkemp Esiste qualcosa come un'impostazione globale per ridimensionare tutto? Tutto è disegnato così piccolo su un telefono (più densità di pixel), ma ciò significa anche che posso farcela con il font 2 o anche 3 volte più grande e risparmiando spazio nella trama. – Madmenyo

+0

Buona domanda @MennoGouw - Temo di non essere sicuro :(Se fossi in me penso che creerei solo una sorta di funzione globale o 'LabelStyle'. –