LibGDX将BitmapFont绘制到中间位置(spritebatch)

时间:2013-11-20 12:25:42

标签: java libgdx

我想使用BitmapFont绘制一些文本 临时位置,然后绘制此位置的一部分 到最后的spritebatch。我正在考虑画画 到一个临时的spritebatch,但它是不可能的 将spritebatch绘制到另一个上。我怎么能做到这一点?

2 个答案:

答案 0 :(得分:0)

您是否曾尝试暂时将其写入像素图? 如果要绘制它,可以将像素图加载到纹理对象中。

https://github.com/libgdx/libgdx/wiki/Pixmaps

答案 1 :(得分:0)

您可以使用FrameBuffer。看下面的例子,你可以在drawBuffer函数中绘制你想要的任何东西,然后在屏幕上绘制它。

希望这有帮助

- 编辑 -

注意:你必须使用useGL20 = true;在您的应用程序配置

public class SpaceMania extends Game  {
@Override
public void create() {
    setScreen(new ScreenView());
}

}

class ScreenView implements Screen{
    InputMultiplexer input;
    FrameBuffer buffer;

    SpriteBatch screenBatch;
    ShapeRenderer shape;

    @Override
    public void render(float delta) {
    //Draw Buffer
    drawBuffer();


    //Draw buffer to screen
    screenBatch.begin();
    screenBatch.draw(buffer.getColorBufferTexture(), 0,0,600,200);
    screenBatch.end();
    }

    public void drawBuffer(){
    buffer.begin();
    shape.begin(ShapeType.FilledCircle);
    shape.setColor(Color.RED);
    shape.filledCircle(50, 50, 50);
    shape.end();
    buffer.end();
    }
    @Override
    public void show() {
    buffer = new FrameBuffer(Format.RGBA8888, 200, 200,false);
    screenBatch = new SpriteBatch();
    shape = new ShapeRenderer();
    }

    @Override
    public void hide() {
    // TODO Auto-generated method stub

    }

    @Override
    public void resize(int width, int height) {
    // TODO Auto-generated method stub

    }

    @Override
    public void pause() {
    // TODO Auto-generated method stub

    }

    @Override
    public void resume() {
    // TODO Auto-generated method stub

    }

    @Override
    public void dispose() {
    // TODO Auto-generated method stub

    }
}