RenderTexture不清除缓冲区

时间:2015-01-30 14:01:47

标签: cocos2d-x cocos2d-js

我试图在cocos2d-JavaScript中实现Pixel完美碰撞测试。

我无法清除像素缓冲区。我不知道为什么。

我做:

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);
}

是的,我甚至没有画画。只是尝试清除renderTexturereadPixels并检查它们是否已清除。事实并非如此。

我甚至首先尝试用一些已知的值填充数组像素,检查它 - 是的它就在那里。在readPixels之后有不同的值,但不清楚......  怎么了?有人可以帮忙吗? 我也试过rend.cleanup(); 我尝试拆分beginWithClear以分隔clear()begin() ...相同的结果。 我试过rend.clearRect ... rend.setClearColor ......没有任何帮助。

0 个答案:

没有答案