package com.cookbook.samples; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.utils.Align; import com.badlogic.gdx.utils.viewport.FitViewport; import com.badlogic.gdx.utils.viewport.Viewport; public class BitmapFontSample extends GdxSample { private static final int VIRTUAL_WIDTH = 1280; private static final int VIRTUAL_HEIGHT = 720; private OrthographicCamera camera; private Viewport viewport; private SpriteBatch batch; private BitmapFont font; @Override public void create() { camera = new OrthographicCamera(); camera.position.set(VIRTUAL_WIDTH * 0.5f, VIRTUAL_HEIGHT * 0.5f, 0.0f); viewport = new FitViewport(VIRTUAL_WIDTH, VIRTUAL_HEIGHT, camera); batch = new SpriteBatch(); font = new BitmapFont(Gdx.files.internal("data/fonts/play.fnt")); font.setColor(Color.WHITE); System.out.println("================"); System.out.println("Font information"); System.out.println("================"); System.out.println("Ascent: " + font.getAscent()); System.out.println("Descent: " + font.getDescent()); System.out.println("Cap height: " + font.getCapHeight()); System.out.println("Line height: " + font.getLineHeight()); System.out.println("Space width: " + font.getSpaceWidth()); } @Override public void dispose() { batch.dispose(); font.dispose(); } @Override public void render() { Gdx.gl.glClearColor(0.6f, 0.6f, 0.6f, 1.0f); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); batch.setProjectionMatrix(camera.combined); batch.begin(); font.setColor(Color.WHITE); font.draw(batch, "This is a one line string", 20.0f, VIRTUAL_HEIGHT - 50.0f); font.setColor(Color.RED); font.getData().setScale(1.5f); font.draw(batch, "This is a scaled red\nmultiline string", 20.0f, VIRTUAL_HEIGHT - 150.0f); font.setColor(Color.BLUE); font.getData().setScale(1.0f); font.draw(batch, "This is a blue string wrapped to fit inside a 900px box. BitmapFont will have to insert line breaks somewhere", 20.0f, VIRTUAL_HEIGHT - 400.0f, 900.0f, Align.left, true); batch.end(); } @Override public void resize(int width, int height) { viewport.update(width, height); } }