Cocos2d x RenderTexture未清除缓冲区
我正在尝试在cocos2djavascript中实现像素完美碰撞测试 我无法清除像素缓冲区。我不知道为什么 我有:Cocos2d x RenderTexture未清除缓冲区,cocos2d-x,cocos2d-js,Cocos2d X,Cocos2d Js,我正在尝试在cocos2djavascript中实现像素完美碰撞测试 我无法清除像素缓冲区。我不知道为什么 我有: var winSize=cc.director.getWinSize(); var rend=新的cc.RenderTexture(winSize.width、winSize.height、cc.Texture2D.PIXEL\u格式\u rgba888); var像素=新的UINT8阵列(4*~~numPixels); 从Clear开始的格式(0,0,0,255); gl.rea
var winSize=cc.director.getWinSize();
var rend=新的cc.RenderTexture(winSize.width、winSize.height、cc.Texture2D.PIXEL\u格式\u rgba888);
var像素=新的UINT8阵列(4*~~numPixels);
从Clear开始的格式(0,0,0,255);
gl.readPixels(x,y,w,h,gl.RGBA,gl.UNSIGNED_字节,像素);
rend.end();
对于(变量i=0;i<~~numPixels;i+=1)
{
var rb=像素[4*i+0];
var gb=像素[4*i+1];
调试(级别_调试,“PP-冲突测试”,“i=%s;rb=%s;gb=%s;”、“+i”、“+rb”、“+gb”);
}
是的,我甚至没有画。只需尝试清除renderTexture
,readPixels
,然后检查它们是否已清除。事实并非如此
我甚至试着先用一些已知的值填充数组像素,检查它-是的,它就在那里。在readPixels
之后,有不同的值,但不清楚。。。
怎么了?有人能帮忙吗?
我还尝试了rend.cleanup()代码>
我尝试拆分beginWithClear
以分离clear()
和begin()
。。。同样的结果。
我尝试了rend.clearRect
<代码>rend.setClearColor
。。。没有任何帮助。看看这个:
var winSize = cc.director.getWinSize();
var rend = new cc.RenderTexture( winSize.width , winSize.height, cc.Texture2D.PIXEL_FORMAT_RGBA8888);
var pixels = new Uint8Array(4 * ~~numPixels);
rend.beginWithClear( 0, 0, 0, 255);
gl.readPixels(x, y, w, h, gl.RGBA, gl.UNSIGNED_BYTE, pixels);
rend.end();
for(var i = 0; i < ~~numPixels; i+= 1)
{
var rb = pixels[4*i + 0];
var gb = pixels[4*i + 1];
DEBUG(LEVEL_DEBUG, "PP - collision test", "i=%s; rb=%s; gb=%s;", ""+i, ""+rb, ""+gb);
}