【发布时间】:2017-07-14 13:21:32
【问题描述】:
我一直在努力让字体与 libgdx 一起工作,我终于做到了。
但现在它抛出了一个异常,我无法弄清楚。
java.lang.NullPointerException: Attempt to read from field 'com.badlogic.gdx.graphics.Color com.badlogic.gdx.graphics.g2d.GlyphLayout$GlyphRun.color' on a null object reference
at com.badlogic.gdx.graphics.g2d.GlyphLayout.setText(GlyphLayout.java:141)
at com.badlogic.gdx.graphics.g2d.BitmapFontCache.addText(BitmapFontCache.java:505)
at com.badlogic.gdx.graphics.g2d.BitmapFontCache.addText(BitmapFontCache.java:487)
at com.badlogic.gdx.graphics.g2d.BitmapFontCache.setText(BitmapFontCache.java:438)
at yt.agar.game.Screens.GameScreen.render(GameScreen.java:213)
at com.badlogic.gdx.Game.render(Game.java:46)
at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:459)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1522)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1239)
字形布局.java:141: https://github.com/libgdx/libgdx/blob/master/gdx/src/com/badlogic/gdx/graphics/g2d/GlyphLayout.java#L141
我是这样画字体的:
BitmapFont font = assetManager.get('arial-96.otf');
font.draw(spriteBatch, "sample text", 10, 10);
我以这种方式生成位图字体,使用AssetManager。我尝试了很多不同的字体,包括 truetype 字体。
FreetypeFontLoader.FreeTypeFontLoaderParameter font = new FreetypeFontLoader.FreeTypeFontLoaderParameter();
font.fontFileName = "fonts/arial.otf";
font.fontParameters.color = Color.WHITE;
font.fontParameters.borderColor = Color.BLACK;
font.fontParameters.borderWidth = 3;
font.fontParameters.flip = true;
font.fontParameters.characters = FreeTypeFontGenerator.DEFAULT_CHARS;
font.fontParameters.size = 96;
manager.load("arial-96.otf", BitmapFont.class, font);
我看不出我做错了什么。
【问题讨论】: