求教 三消游戏的不规则地形,边缘怎么添加遮罩

三消游戏的地图边缘一般都是不规则的。由于消除后会产生新的元素填补空缺,在等待阶段怎么添加遮罩遮挡这些新的元素,让他在进入地图范围内才显示(有向下滑落的感觉)。
不知道有没有说清楚。
目前我使用的方案:
clippingNode , 由于地图使用tiledMap拼出,可以以tilemap所谓stencil,对地图进行切割,能用但是感觉开始切割的边缘不够柔滑。而且始终感觉操作有很多多余,浪费性能。

新准备的思路:
同样使用tiledmap创建地图,使用texture2d进行图片混合。(没做,不知道效果怎么样)

还有什么其他好的思路吗?求教。

你把你的所有格子 放在 panel里面
然后panel 设置 裁剪框体区域。 不在你panel框体里的元素就都不会显示了。

来个图,没看明白你的需求

稍等,我灵魂画师一波。

如图,黄色区域为地图区域,白色区域为地图外,X是消除元素的产生位置,消除元素在创建后自动下落。当消除元素在X位置创建时处于白色区域,是不显示的。向下移动,只进入地图区域部分显示。

相当于,白色区域有个遮罩,遮住了在白色区域产生的东西。

这么说,应该OK。
然后我的处理方式是,用黄色区域作为clippingNode的stencil,来切割出一个显示区域,达到上述目的。
但是由于实际开发中的地图区域是tiledmap,我个人觉得加载的时候有点浪费,效率不高,所以想问问又什么其他的方式。

没用过啊,是creater的东西吗。我百度了下,说是studio的,studio不好用,所以一直都是只用来加载一个动画。

你想的太复杂了,我们公司做过无数款三消游戏,正确的做法是tilemap只用来读取排版数据,至于你如何使用这些数据来表现画面就自由发挥了。

你的显示区域是固定的,用一个cc.layout 这个东西,装你的格子,layout设置为裁剪状态, layout的size 外的东西,就自动给你裁剪了,size外的东西,你怎么排,都不会显示出来,当你的size外的东西,移动到size内,在边缘就会逐渐显示的。如果你有较复杂的移动,比如消除区域向下扩展,你可以通过处理layout 的 size,和 格子的位置,就能控制了

我想到一个思路,把最上面的格子加上mask,元素的父节点首先设置为最上面那个格子,等元素到达正中央后,再把元素的父节点设置为它该掉落到的目标格子。

每个需要显示的格子使用mask中的graphics画出就可以了mask.zip (238.2 KB)