export function captureScreenToTexture(camera:cc.Camera):cc.SpriteFrame {
let newTexture:cc.RenderTexture = new cc.RenderTexture();
let oldTexture:cc.RenderTexture = camera.targetTexture;
newTexture.initWithSize(cc.visibleRect.width, cc.visibleRect.height, cc.RenderTexture.DepthStencilFormat.RB_FMT_S8);
camera.targetTexture = newTexture;
camera.render();
camera.targetTexture = oldTexture;
let spriteFrame:cc.SpriteFrame = new cc.SpriteFrame(newTexture);
spriteFrame.setFlipY(true);
return spriteFrame;
}
let spriteFrame = captureScreenToTexture(mainCamera)
let data = spriteFrame.getTexture().readPixels();
for (let i = 100 ; i < 150;i++)
{
console.log(’ data[’+i +’] = ’ +data[i];
}
结果全是 0
但把spriteFrame设置到一个Node上是可以正常显示的,这个是什么问题啊?