Quantcast
Channel: Cocos中文社区 - 最新帖子
Viewing all articles
Browse latest Browse all 495453

经验分享:Creator 原生平台截屏方案

$
0
0

那个,我的需求比较多一点。之前我测试过截取某个node的图像。我想问问。

第一: 这个只是截屏,就是完整的一个屏幕。即position在0 0点。
但是如果我只想接截取某个其他位置的node的contensize区域呢?

比如我有一个node放在屏幕中央,大小只有100x100。然后我就想截取这个node和它上面所有子节点的图像,只需要node那100x100的范围。

我测试过,如果position不在 0 0点,大小不是全屏,那还挺麻烦的。
用这个老方法:render.setVirtualViewport(origin, fullRect, virtualViewPort)。我试了好久都没搞出来。

伪代码如下:
var render = new cc.RenderTexture(size.width, size.height, cc.Texture2D.PIXEL_FORMAT_RGBA8888, gl.DEPTH24_STENCIL8_OES);
var origin = cc.p(0, 0);
var fullRect = cc.rect(x,y, size.width, size.height);
var virtualViewPort = cc.rect(x, y, size.width * 2, size.height * 2);
render.setVirtualViewport(origin, fullRect, virtualViewPort);
render.begin();
this.backgroundLayer_.visit();
render.end();

setVirtualViewport我以为可以调整截取的区域,结果怎么都达不到效果。

第二,截取生成的renderTexture,我没找到方法来生成sprite使用。图像已经在内存中,但是没办法取出来吗?
第三,renderTexture和 texture2D是什么关系,如果能转换,就能生成spriteFrame,设定截取的rect。可以任意切割,自定义性就强很多。能做很多事情。


Viewing all articles
Browse latest Browse all 495453

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>