Beh, è una domanda di 8 mesi, ma forse siete ancora interessati alla risposta. O almeno qualcuno con lo stesso problema sarà.
Per avere caratteri uniformi, utilizzo font di tipo libero e li creo nella schermata di caricamento. Per questo è necessario un gestore patrimoniale.
solito Creo il mio asset manager nel mio activty principale:
public class MyGdxGame extends Game implements ApplicationListener {
public SpriteBatch batch;
public AssetManager assets;
@Override
public void create() {
batch = new SpriteBatch();
assets = new AssetManager();
this.setScreen(new LoadingScreen(this));
}
@Override
public void render() {
super.render();
}
}
E nella schermata di caricamento che creano i caratteri con qualsiasi dimensione, sulla base di un file .ttf:
public class LoadingScreen implements Screen{
final MyGdxGame game;
public LoadingScreen(final MyGdxGame gam){
game = gam;
FileHandleResolver resolver = new InternalFileHandleResolver();
game.assets.setLoader(FreeTypeFontGenerator.class, new FreeTypeFontGeneratorLoader(resolver));
game.assets.setLoader(BitmapFont.class, ".ttf", new FreetypeFontLoader(resolver));
FreeTypeFontLoaderParameter size1Params = new FreeTypeFontLoaderParameter();
size1Params.fontFileName = "Fonts/calibri.ttf";
size1Params.fontParameters.genMipMaps = true;
size1Params.fontParameters.minFilter = TextureFilter.Linear;
size1Params.fontParameters.magFilter = TextureFilter.Linear;
size1Params.fontParameters.size = Gdx.graphics.getWidth()/18;
game.assets.load("font1.ttf", BitmapFont.class, size1Params);
FreeTypeFontLoaderParameter size2Params = new FreeTypeFontLoaderParameter();
size2Params.fontFileName = "Fonts/calibri.ttf";
size2Params.fontParameters.genMipMaps = true;
size2Params.fontParameters.minFilter = TextureFilter.Linear;
size2Params.fontParameters.magFilter = TextureFilter.Linear;
size2Params.fontParameters.size = Gdx.graphics.getWidth()/6;
game.assets.load("font2.ttf", BitmapFont.class, size2Params);
}
}
Con questo metodo è possibile creare caratteri molto lisci di qualsiasi dimensione. Il trucco per renderli lisci è in queste 3 linee:
size2Params.fontParameters.genMipMaps = true;
size2Params.fontParameters.minFilter = TextureFilter.Linear;
size2Params.fontParameters.magFilter = TextureFilter.Linear;
Infine, quando è necessario utilizzare uno dei tuoi carattere, è necessario utilizzare:
game.assets.get("font1.ttf", BitmapFont.class)
Fate attenzione con il nome di i tuoi caratteri. Per i 2 caratteri che ho creato in questo esempio, e font2
, ho utilizzato un singolo file .ttf che è calibri.ttf
, ma quando chiamo i caratteri creati nel mio codice ho bisogno di chiamare font1.ttf
o font2.ttf
, anche se non ci sono File .ttf nella mia risorsa.
Sarebbe utile vedere il tuo font e il risultato finale. Puoi aggiungere alcune immagini? –