在游戏过程中,我希望能够访问当前在屏幕上显示为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需要被处理。需要处置的对象列表,您可以在此处找到