follwing cet exemple de code: https://github.com/libgdx/libgdx/blob/master/tests/gdx-tests/src/com/badlogic/gdx/tests/extensions/FreeTypeFontLoaderTest.javaException en chargeant la police TTF dans AssetManager
Je suis en train de charger un seul fichier TTF dans le AssetManager avec des paramètres différents et différents noms de fichiers.
public class LoadingScreen implements Screen {
private final GdxAsternets game;
private float progress;
public LoadingScreen(final GdxAsternets game){
this.game = game;
game.bitmapFont = new BitmapFont(Gdx.files.internal("font/myFont.fnt"));
queueAssets();
}
@Override
public void show() {
progress = 0f;
}
@Override
public void render(float delta) {
Gdx.gl.glClearColor(0, 0, 0, 0);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
update(delta);
}
private void update(float delta){
progress = MathUtils.lerp(progress, game.assetManager.getProgress(), 0.1f);
if(game.assetManager.update() && progress >= game.assetManager.getProgress()- 0.1f){
game.setScreen(game.menuScreen);
}
}
private void queueAssets(){
//Fontloader/Filehandler
FileHandleResolver resolver = new InternalFileHandleResolver();
game.assetManager.setLoader(FreeTypeFontGenerator.class, new FreeTypeFontGeneratorLoader(resolver));
game.assetManager.setLoader(BitmapFont.class, ".ttf", new FreetypeFontLoader(resolver));
//load timer font
FreetypeFontLoader.FreeTypeFontLoaderParameter smallFontParams = new FreetypeFontLoader.FreeTypeFontLoaderParameter();
smallFontParams.fontFileName = "font/Montserrat-SemiBold.ttf";
smallFontParams.fontParameters.size = 40;
game.assetManager.load("smallFont.ttf", BitmapFont.class, smallFontParams);
//load game msg font
FreetypeFontLoader.FreeTypeFontLoaderParameter bigFontParams = new FreetypeFontLoader.FreeTypeFontLoaderParameter();
smallFontParams.fontFileName = "font/Montserrat-SemiBold.ttf";
smallFontParams.fontParameters.size = 85;
game.assetManager.load("bigFont.ttf", BitmapFont.class, bigFontParams);
}
/**Overring methods...*/
}
Levez les yeux vers la méthode queueAssets(). Citant le lien au-dessus de moi: "Les noms des polices sont arbitraires et ne pointent pas sur un disque de fichier". J'ai nommé les polices générées "bigFont.ttf" et "smallFont.ttf", mais il ne parvient pas à charger les actifs. Le problème ici ne réside pas sur le mauvais chemin du fichier de la police ttf. J'ai fait usage de
game.assetManager.load("font/Montserrat-SemiBold.ttf", BitmapFont.class, smallFontParams);
au lieu de
game.assetManager.load("smallFont.ttf", BitmapFont.class, smallFontParams);
avant et il semble fonctionner si bien faire ce qui est en contradiction avec la déclaration ci-dessus.
Une exception est levée à la méthode de mise à jour (float delta) alors que game.assetManager.update() est appelée.
Exception:
GdxRuntimeException: com.badlogic.gdx.utils.GdxRuntimeException: Error reading file: null (Internal)
at com.bitbench.asternets.Screen.LoadingScreen.update(LoadingScreen.java:84)
at com.bitbench.asternets.Screen.LoadingScreen.render(LoadingScreen.java:67)
faire le nom du fichier et le chemin sûr de votre fichier est correct du système, fichiers ** d'Android est sensible à la casse ** – Aryan
comme déjà dit le chemin de mon fichier est correct. Je ne demande pas sur stackoverflow si c'est un problème mineur. –