2

我正在尝试在 cocos2d-JavaScript 中实现像素完美碰撞测试。

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

我愿意:

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没有任何帮助。

4

0 回答 0