我正在尝试在 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);
}
是的,我什至不会画画。只是试图清除renderTexture
,readPixels
并检查它们是否已清除。不是。
我什至首先尝试用一些已知值填充数组像素,检查它 - 是的,它就在那里。在readPixels
有不同的值但不清楚之后......有什么问题?有人可以帮忙吗?我也试过rend.cleanup();
我试过分裂beginWithClear
分开clear()
和begin()
......结果相同。我试过rend.clearRect
了……rend.setClearColor
没有任何帮助。