我正在制作一个代表手绘和精灵的游戏,以便在通过它时进行动画处理。所以我必须使用颜色检测并在屏幕上的精灵遇到颜色变化时引发事件。为此,我使用 glReadpixel() 传递 RGBA_8888 和 GLES20 版本,并以红绿蓝形式接收其值,但每次它返回所有内容为 0。尝试更改像素格式并进行多次尝试但没有成功。你能帮忙吗
我的代码:
`
ByteBuffer PixelBuffer = ByteBuffer.allocateDirect(4);
PixelBuffer.order(ByteOrder.nativeOrder());
PixelBuffer.position(0);
int mTemp = 0;
GLES20.glReadPixels(100, 100, 1,1,GLES20.GL_RGBA,GLES20.GL_UNSIGNED_BYTE, PixelBuffer);
byte b[] = new byte[4];
PixelBuffer.get(b);
Log.e("COLOR", "R:" + PixelBuffer.get(0) + PixelBuffer.get(1) + PixelBuffer.get(2));
`
结果 Logcat:颜色 R:000。
我尝试使用非黑色背景并在提供的屏幕坐标上显示红色。
提前致谢