creator版本:2.0.5 至 2.0.9p1,其它版本没测试
看图,看不清楚的,请右键图片在新的标签页打开就可以看大图了
正常的效果:
错误的效果:
Demo:MaskBug.zip (243.6 KB)
creator版本:2.0.5 至 2.0.9p1,其它版本没测试
看图,看不清楚的,请右键图片在新的标签页打开就可以看大图了
正常的效果:
错误的效果:
Demo:MaskBug.zip (243.6 KB)
自己顶顶顶
周末在线等回复,很慌
活跃于论坛的BUG老哥
蛋蛋的忧伤
顶一下,顶一下
我看一下
因为同时选择了 fitHeight 和 fitWidth , 所以Canvas的长宽会被固定缩放到设计分辨率的长宽,Canvas不能充满整个屏幕。
Canvas外的内容依然会被渲染,这个是当前版本设计如此。
Canvas外的内容是要被渲染的,这是对的,问题是Mask,加了Mask之后导致不应该出现的内容出现了,那个黑色遮罩应该覆盖整个屏幕的,但现在黑色遮罩两边没了。、
你帮忙下载项目看看,理解我说的问题。
mask上面没加widget?
mask不能同级节点不能加widget啊,我只要镂空一个圆,黑色那层节点有加widget的
首先,编辑器上的效果和运行效果就不一致了。
我要的效果是黑色层遮盖整个屏幕(包括Canvas外的),然后在黑色层镂一个洞出来。
现在黑色层因为mask覆盖不到Canvas外了
你的问题可能与他相似
https://forum.cocos.com/t/mask/70365/26?u=337031709
尝试一下这个解决方案。
因为CCMask.js里面Mask的绘制范围写死了,只能是Canvas内,这个问题似乎还没有解决。
可以了
自定义引擎修改CocosCreator\resources\engine\cocos2d\core\components\CCMask下的
this._clearGraphics.rect(0, 0, cc.visibleRect.width, cc.visibleRect.height);
传入4个较大的参数,可以暂时解决这个问题。
希望官方下个版本能正式修复这个问题。
别人反馈这个问题已经很久了。
如果你的项目不需要移动摄像机的同时刷新mask,那么只需要这样改一下就可以。
let deviationX = (cc.view.getVisibleSize().width - cc.view.getFrameSize().width) / 2;
this._clearGraphics.rect(-deviationX, 0, cc.visibleRect.width + deviationX * 2, cc.visibleRect.height);
我的项目不是静态的,有滚屏场景,只不过用到mask的地方一般是UI界面
嗯,好吧。
我在2.0.9自定义引擎做了修正,修正方式是当视窗范围有变动时,更新mask clearGraphics的大小。
有需要的人可以参考附件,解压后请放到以下位置。
cocos2d/core/components/CCMask.js
cocos2d/core/platform/CCView.js
fix.zip (17.4 KB)
这个问题在2.1.1版本修复了
正式版什么时候发布?