LibGDX - 将当前呈现的屏幕作为RGB值矩阵获取

  • 本文关键字:RGB 获取 屏幕 LibGDX java libgdx
  • 更新时间 :
  • 英文 :


在游戏过程中,我希望能够访问当前在屏幕上显示为RGB值矩阵(或几个矩阵)的像素。有没有一个简单的命令来访问它?

您可以使用 [Official LibGDX wiki[(https://github.com/libgdx/libgdx/wiki/Taking-a-Screenshot) 中的代码

    byte[] pixels = ScreenUtils.getFrameBufferPixels(0, 0, Gdx.graphics.getBackBufferWidth(), Gdx.graphics.getBackBufferHeight(), true);
    Pixmap pixmap = new Pixmap(Gdx.graphics.getBackBufferWidth(), Gdx.graphics.getBackBufferHeight(), Pixmap.Format.RGBA8888);
    BufferUtils.copy(pixels, 0, pixmap.getPixels(), pixels.length);
    //Your logic here
    pixmap.dispose();

然后,您可以使用Pixmap方法获得所需的像素:

    getPixel(int x, int y)

或者只是使用循环遍历所有像素,如下所示

    for(int w = 0; w < pixmap.getWidth(); w++)
        for(int h = 0; h < pixmap.getHeight(); h++)
            getPixel(w, h);

请记住,pixmap需要被处理。需要处置的对象列表,您可以在此处找到

最新更新