在LibGDX中绘制文本

时间:2015-04-26 20:16:35

标签: java libgdx

我很难在LibGDX中绘制文字。每次我跑它,我都会得到一个黑色的窗户。我希望文字是白色的,但我什么也看不见。我试过找到很多教程和vieos,仍然无法让它工作。我的资产文件夹/ fonts中有一个vaild fnt和png文件。

package org.alexwebber.frc.stalk;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;

public class Main extends ApplicationAdapter
{
    public class HelloWorld implements ApplicationListener
    {
        private SpriteBatch batch;
        private BitmapFont  font;

        @Override
        public void create()
        {
            batch = new SpriteBatch();
            font = new BitmapFont(Gdx.files.internal("fonts/main.fnt"),
                            Gdx.files.internal("fonts/main.png"), false);
        }

        @Override
        public void dispose()
        {
            batch.dispose();
            font.dispose();
        }

        @Override
        public void render()
        {
            batch.begin();
            font.setColor(255.0f, 255.0f, 255.0f, 255.0f);
            font.draw(batch, "Hello World", 25, 160);
            batch.end();
        }

        @Override
        public void resize(int width, int height)
        {
        }

        @Override
        public void pause()
        {
        }

        @Override
        public void resume()
        {
        }
    }
}

1 个答案:

答案 0 :(得分:4)

可能会影响你的是取消屏幕清除:

public void render () {
    Gdx.gl.glClearColor(0, 0, 0, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    batch.begin();
    font.setColor(Color.WHITE);
    font.draw(batch, "Hello world", 25, 160);
    batch.end();
}

您也可以尝试按上述方式传递Color.WHITE。如果您使用的Android设备具有极高的屏幕分辨率,则可能无法看到文本行。

通过a Desktop application进行测试也是一个好主意,因为您可以调整屏幕分辨率,以便文字更大。