如何让LibGDX BitmapFont绘制?

时间:2013-10-01 00:43:27

标签: java libgdx

我四处寻找这个问题,但无法找到解决方案。

这是我的渲染循环:

 Gdx.gl.glClearColor(0, 0, 0, 1);
 Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

 batch.begin();

 BitmapFont font = new BitmapFont(Gdx.files.internal("data/Media/font/myfont1.fnt"), false);
 font.setColor(new Color(1, 1, 1, 1));
 font.draw(batch, "Hello", 100, 100);

 batch.end();

我已经尝试了所有可能的颜色,位置和不同的程序来生成字体。 但结果总是一样:黑屏! (当glClearColor是(1,1,1,1)时,白屏......)谁能告诉我出了什么问题?

提前致谢!

编辑: 我自己发现了这个问题。这是一个设置严重的相机!

4 个答案:

答案 0 :(得分:2)

似乎没有加载png文件和fnt文件

 font = new BitmapFont(Gdx.files.internal("data/billy.fnt"), Gdx.files.internal("data/billy.png"), false);

请不要尝试在render方法中加载任何内容。 尝试在构造函数中加载字体,否则你将以G.C调用结束,f.p.s最终会下拉

答案 1 :(得分:1)

您可以在项目中没有.fnt的情况下初始化新的BitmapFont。

BitmapFont font = new BitmapFont();

然后你渲染它:

batch.begin();
font.draw(batch, "Hello world", 200, 0);
batch.end();

不要忘记Y轴从底部开始!

答案 2 :(得分:0)

 font = new BitmapFont(Gdx.files.internal("data/billy.fnt"), Gdx.files.internal("data/billy.png"), false);

如果您的字体图片很少,例如billy.fnt,billy_1.png,billy_2.png,您可以使用:

 font = new BitmapFont(Gdx.files.internal("data/billy.fnt"), false);

答案 3 :(得分:0)

使用libgdx网站提供的hiero创建.fnt文件

设置字体150的大小,它将创建一个.fnt文件和一个png文件

复制你的assests文件夹中的两个文件

现在声明字体

BitmapFont font;

创建方法

font = new BitmapFont(Gdx.files.internal("data/rayanfont.fnt"), false);

// rayanfont是您可以为您的字体命名的字体名称

in render

batch.begin();
font.setscale(.2f);
font.draw(batch, "hello", x,y);
batch.end();

这将顺利运作