Не уверен, поможет ли это кому-либо или нет, но мне удалось получить текстуры и , которые правильно отображают шрифты, используя предложенную перевернутую систему координат через OrthographicCamera.Вот что я сделал:
private SpriteBatch batch;
private BitmapFont font;
private OrthographicCamera cam;
private Texture tex;
@Override
public void create () {
batch = new SpriteBatch();
font = new BitmapFont(true);
font.setColor(Color.WHITE);
cam = new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
cam.setToOrtho(true, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
tex = new Texture("badlogic.jpg");
}
@Override
public void dispose() {
batch.dispose();
font.dispose();
tex.dispose();
}
@Override
public void render () {
cam.update();
batch.setProjectionMatrix(cam.combined);
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.begin();
font.draw(batch, "Test", 50, 50);
batch.draw(tex, 100, 100, tex.getWidth(), tex.getHeight(), 0, 0, tex.getWidth(), tex.getHeight(), false, true);
batch.end();
}
Важные вещи, на которые стоит обратить внимание:
- Конструктор BitmapFont, логическое значение переворачивает шрифт
- Для batch.draw ()вам нужно использовать все эти параметры, потому что вам нужен логический flipY в конце, чтобы перевернуть текстуру (я могу расширить SpriteBatch или создать служебный метод, чтобы не передавать столько параметров постоянно).
- Обратите внимание на пакет.setProjectionMatrix (cam.combined);in render ()
Теперь мы увидим, вернусь ли я сюда сегодня вечером и буду делать правки, чтобы исправить любые другие проблемы или открытия, связанные с выполнением всего этого.:)