cocoscreator 怎么实现层叠消融的 偶消奇不消的效果?

cocoscreator 怎么实现层叠消融的 偶消奇不消的效果?没有头绪。

1赞

楼主有解决思路吗?求分享

直接用RenderTexture做离屏渲染啊,采样rt里面的纹理的颜色和当前移动物体纹理的颜色,0变1,1变0,完了再存到rt里面。

大佬 ,如何判断和目标图形一致呢?这个要怎么判断呀?求指点

这个要看你的设计是不是有唯一解,如果有唯一解每个小物件放在各自所在位置和层级就判赢了。如果有多个解看一下图片相似度识别不知道可不可行。

好的,感谢大佬解惑

我的想法是通过shader内判断多边形碰撞实现修改颜色

楼主要的是XOR的混合效果,修改混合模式就可以了,对每个组件应用以下逻辑

let sprite = c.getComponent(cc.Sprite);
let mat = sprite.getMaterial(0);

mat?.setBlend(
    true,
    gfx.BLEND_FUNC_ADD,
    gfx.BLEND_ONE_MINUS_DST_COLOR,
    gfx.BLEND_ONE_MINUS_SRC_COLOR,
    gfx.BLEND_FUNC_ADD,
    gfx.BLEND_ONE_MINUS_DST_ALPHA,
    gfx.BLEND_ONE_MINUS_SRC_ALPHA,
    0x00000000,
    0);

试了下必须用第二个相机才能正常渲染出来,不知道是不是因为背景色需要透明的原因。

效果:
https://caogtaa.gitee.io/ccdemos/?scene=SceneXOR
(白色正方形可拖动)

3赞

学到了!!

您好, * enabled boolean

  • blendEq number
  • blendSrc number
  • blendDst number
  • blendAlphaEq number
  • blendSrcAlpha number
  • blendDstAlpha number
  • blendColor number
  • passIdx number
    您好,请问这里的blendColor参数代表啥意思?我想修改为黑色正方形在白色背景上拖动,我该怎么设置参数?

想对调黑白,调节点颜色就可以,不用改blendColor。
blendColor什么意思,百度比我回答得更清楚。


你这需求过了这么久 :sweat_smile:

mark!

嘘嘘下做个标记 :yum:

您好,换了节点颜色,挂上脚本后黑色方块显示不出来了CCXR.zip (839.3 KB)