[0]遮罩层宽高为0显示异常


QQ截图20230603193103.png


QQ截图20230603193149.png

 
上图原图是正方形的白图,用于遮罩的图是圆形的,宽度50的时候显示范围缩小,变成0的时候去没有隐藏
 
RenderSprite的源码_maskNative和_mask方法里只判断了宽高大于0的情况,小于等于0的时候却没清空原来绘制的图像
QQ图片20230603192306.png
已邀请:

layabox

赞同来自:

先结个帖子。
遮罩节点,本来就是为了遮住目标节点,只显示遮罩节点的可见部分而设计,所以遮罩节点不应该为0,否则渲染逻辑跑不通。当然,您提的需求,结合示例,我们也能理解。所以功能也进行了优化,支持了遮罩节点宽高为0,等待3.0正式版即可。
当前有两种方式,也可以满足您的需求。
第一,可以将遮罩节点的宽高设置为1像素,可达到您不想看到遮挡目标的目的。
第二,您示例中的进度条需求,可采用进度条组件来实现。

最后感谢反馈,可以关注我们后续的版本更新日志。

layabox

赞同来自:

你反馈的问题没能重现。应该是你用错了,如果你能重现,需要上传demo,看一下你怎么用的。不要只描述现象。
另外,引擎那里就是那样的,不是BUG
当IDE里,哪怕你是设置为0,还是故意保留了一个像素。
因为,遮罩是消耗性能的,不能随便用。如果为0的需求,说明你不想让那个图看到,那为什么要设置遮罩?直接让这个图不渲染不好吗?
所以,遮罩的需求就是不能为0,必须大于0。

CCTV

赞同来自:

Demo在这里

来自1999的

赞同来自:

这个是他们更新beta7导致的  我也遇到了  以前可以为0,现在不行,害我也研究了好一会才发现BUG是这个遮罩的问题

layabox

赞同来自:

看到demo了,也理解你的需求了。这个我们抽空看一下。
不过进度条,不是你这样用的。我们明明提供了进度条组件,为什么不直接用进度条组件呢?
用你的资源,帮你写了一个进度条的demo,你自己看一下,进度条组件是怎么用的吧。没必要用遮罩来实现。

CCTV

赞同来自:

QQ截图20230615142403.png

 

该问题目前已经被锁定, 无法添加新回复

商务合作
商务合作