Libgdx |帧缓冲区在绘制时不显示任何内容

时间:2016-06-13 04:34:57

标签: java android libgdx

我正在尝试为小地图绘制一堆瓷砖(10,000个精灵)。单独绘制时它落后于android,所以我试图使用帧缓冲。出于某种原因,我无法通过缓冲区获取任何屏幕。我将展示相关代码。

buffer = new FrameBuffer(Pixmap.Format.RGBA8888, Main.VIRTUAL_WORLD_WIDTH, Main.VIRTUAL_WORLD_HEIGHT, false);

    OrthographicCamera cam = new OrthographicCamera(Main.VIRTUAL_WORLD_WIDTH, Main.VIRTUAL_WORLD_HEIGHT); 
    buffer.begin();
    batch.begin();
    batch.setProjectionMatrix(cam.combined);
    for(Tile[] tiles : world.level.getGrid()){
        for(Tile tile : tiles){
            tile.getSprite().draw(batch);
        }
    }
    batch.end();
    buffer.end();

    tiles = new Sprite(buffer.getColorBufferTexture());

上面的代码在create方法中创建了framebuffer。

这会呈现

batch.setProjectionMatrix(camera.combined);
        batch.begin();
        tiles.draw(batch);
        batch.end();

注意,tile sprite的位置是0,0。我尝试用这段代码改变所有孩子的东西,但是永远不能让它在屏幕上绘制。实际的瓷砖不是问题,它们都能正常工作。我的相机设置正确,我的视口也是如此。

0 个答案:

没有答案