【问题标题】:Text rotation libgdx文本旋转 libgdx
【发布时间】:2013-09-22 09:40:00
【问题描述】:

我想在 libgdx 中旋转 BitmapFont。有关于这个问题的话题。 Draw a BitmapFont rotated in libgdx 但是,我尝试的第一个解决方案剪切了我的文本,整个文本都没有出现(对角线剪切)。当它说应该是 180 度时,它还会将它旋转 90 度。我就是不明白。

代码:

public void show() {
    sr = new ShapeRenderer();
    w = Gdx.graphics.getWidth();
    h = Gdx.graphics.getHeight();
    textRotation = new Matrix4();
    textRotation.setToRotation( new Vector3(200,200, 0), 180);

    rectThickness = h / 120;
    c1 = Color.WHITE;
    c2 = Color.WHITE;
    f = new BitmapFont(Gdx.files.internal("fonts/MyFont.fnt"),
             Gdx.files.internal("data/MyFont.png"), true);
    f.setScale(h/500);
    sb = new SpriteBatch();
}
private void renderPlayerScores() { //callend in render
    sb.setTransformMatrix(textRotation);
    f.setColor(players[0].getColor());
    sb.begin();
    f.draw(sb, "Player 1: "+ Integer.toString(scores[0]), 100, 110);
    sb.end();
}

【问题讨论】:

  • 您可以使用补间,但为此您必须制作自己的文本精灵访问器
  • 你能给我举个例子吗?
  • 你找到解决办法了吗?

标签: java rotation libgdx bitmap-fonts


【解决方案1】:

一种方法是使用 scene2d 标签。它们非常易于使用,如果您阅读Scene2D UILabels,您应该能够做您想做的事情。然而,有些人不喜欢使用 Scene2D。下面的代码完成了你想要的,但是为了避免使用 Scene2D 需要做一些额外的工作。

public SpriteBatch spriteBatch;
private int posX = 100;
private int posY = 100;
private float angle = 45;
private String text = "Hello, World!";
private BitmapFont font;
private Matrix4 oldTransformMatrix;
Matrix4 mx4Font = new Matrix4();

@Override
public void show() {
    font = new BitmapFont(Gdx.files.internal("someFont.ttf"));
    oldTransformMatrix = spriteBatch.getTransformMatrix().cpy();
    mx4Font.rotate(new Vector3(0, 0, 1), angle);
    mx4Font.trn(posX, posY, 0);
}

@Override
public void render() {
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
    spriteBatch.setTransformMatrix(mx4Font);
    spriteBatch.begin();
    font.draw(spriteBatch, text, 0, 0);
    spriteBatch.end();
    spriteBatch.setTransformMatrix(oldTransformMatrix);
}

我希望其中一些对你有用。

【讨论】:

    猜你喜欢
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-04
    • 2014-04-04
    • 2014-12-26
    • 1970-01-01
    相关资源
    最近更新 更多