繁体   English   中英

Libgdx在纹理中保存SpriteBatch

[英]Libgdx save SpriteBatch in a texture

我想知道是否可以在纹理中保存spriteBatch

 SpriteBatch batch = new SpriteBatch();

在批处理中绘制一些东西之后 ,我想在One纹理中保存包含SpriteBatch的所有东西 (类似于截图 )。

我不知道怎么做,我在网上和libgdx文档上搜索但没找到。

谢谢

您可以渲染到FrameBufferObject (FBO)。 请参阅https://github.com/mattdesl/lwjgl-basics/wiki/FrameBufferObjects

如果您可以提前决定渲染纹理,那么FBO将会起作用。 一个副作用是图像不会渲染到屏幕,而只会渲染到纹理。 (当然,它很容易将纹理渲染到屏幕上)。

正如另一个答案建议的那样,你可以从屏幕缓冲区中删除字节,并从生成的Pixmap创建一个Texture (你不需要一直到文件系统)。 请参阅https://code.google.com/p/libgdx-users/wiki/Screenshots (只需使用getScreenshot方法获取字节的Pixmap )。

像这样使用转换到纹理:

final Pixmap pmap = new Pixmap(bytes, 0, bytes.length);
try{
    Gdx.app.postRunnable(new Runnable(){
        public void run(){
        texture=new Texture(pmap);
        }
    });
}catch(Exception e){
    e.printStackTrace();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM