【问题标题】:LibGDX draw BitmapFont to intermediate location (spritebatch)LibGDX 将 BitmapFont 绘制到中间位置(spritebatch)
【发布时间】:2013-12-04 10:43:09
【问题描述】:

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

【问题讨论】:

    标签: java libgdx


    【解决方案1】:

    您可以使用 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
    
        }
    }
    

    【讨论】:

      【解决方案2】:

      您是否尝试过将其临时写入像素图中? 当你想绘制它时,你可以将像素图加载到纹理对象中。

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

      【讨论】:

      • 我会,但是 BitmapFont 只能绘制到 spritebatch。
      猜你喜欢
      • 1970-01-01
      • 2012-10-03
      • 1970-01-01
      • 2012-01-20
      • 1970-01-01
      • 2014-04-12
      • 1970-01-01
      • 2018-04-14
      • 1970-01-01
      相关资源
      最近更新 更多