油漆桶填色效果怎么实现啊,找了两天都找不到资源

大佬 最后是怎么实现的 目前也要开发类似的游戏

如果每个节点慢慢拼 太耗时 美术切图也比较慢

这个可以在前期把图片分好区,然后点击的时候把相应的区的像素rgba 全部设置成想要rgba,刷新texture就行了

张晓衡大佬的微店上有一个9.9块的填色游戏,你可以买来参考

这个就是要确定你要填的是那个区域是难点,解决了剩下就是涂色而已,你可以对像素级操作,采用图遍历,遇到不是白色不继续走,这样就可以遍历出点击像素所在白色区域所有白色,填色就好,也就是上面说的Flood Fill算法,推荐这个图搞透明底白色线比较好,可以方便换线颜色也可以方便判断填涂区域,背景可以任意换背景图

const {ccclass, property} = cc._decorator;
@ccclass
export default class NewClass extends cc.Component {
    @property({type: cc.Texture2D})
    texture: cc.Texture2D = null;
    start () {
        let rt = new cc.RenderTexture();
        rt.initWithSize(this.texture.width, this.texture.height);
        rt.drawTextureAt(this.texture, 0, 0);
        // data就是这个texture的rgba值数组
        let data = rt.readPixels();
        console.log(data);
    }
}

大佬 你这个说的应该是把图一点一点的拼接好, 这种方法太耗时了

大佬最后咋实现的啊?我们也要做像素填色这类型游戏了。

盲猜可以用网格法, 先写个脚本把图片跑成二维数组的网格,根据点击所在网格下标判断区域,然后给区域内的网格设置颜色

个人觉得网格还不如美术把每一个单独切块然后重新拼。只对单个精灵操作改变颜色。

你的填色是固定填色, 还是任意位置, 点哪里就哪里上色。

1.如果你是固定方向上色,我这里有方案。

2.如果你是 点哪里就哪里换颜色, 在论坛搜索 <贴花> 关键字, 最高适配到 3.5.2了。 或者去看 官方案例, 溶解, 点击消除 有官方案例

很好奇最后是怎么实现的 :sweat_smile:

大佬你好,需求是这样的 : 先给一张图片,然后就一个一个格子的像素,鼠标点哪个格子,就给哪个格子填色。

你是3d的吗, 3d 的看我说的。

2d 的话论坛有很多答案你自己找下,我目前主要在看3d 的。

3d 参考方案:
1.去看这个贴子。 贴花效果
不过提前说一下,这个效果精度很低, 涂色的位置和你点击的位置有差距。
image

2.这个官方的demo, 它的办法是弄了很多个面,很多个材质。 你点哪里就换哪里的材质。

3.还有这个demo 也可以参考, 和上面两种处理方式类似。

这三个的处理方法, 如果配合美术,处理的好, 可能都能解决你的问题。因为你是一个格子,一个格子,而不是 点哪里就是哪里。 没有那么高的精度要求的话是可以用的。

好的,辛苦了大佬,我是2d的,刚入门两个星期,再找找办法。

2d 的不是更简单了, cocos的2d画图方案很多, 看到很多。

shader 类也有很多。

刚入门就找官方案例学着做。

如果实现不了,我感觉可以用很多小图片, 点哪里就换哪里。

弄一个类似于噪声贴图的图。需要填充的区域给你填充的颜色。shader里面拿正常贴图和噪声贴图uv点,颜色做混合就行了

https://article.itxueyuan.com/Oe3EGa

1赞

像素填色,我这边的想法是拿到一张图片,怎么分解为像素,然后操作每一个像素格子。比如像这张图片mc_template_pixel_30_famous03_gray_thumb

去研究shader,你看上面大佬发的。

好,我去b站看下放空大佬的shader教程,谢谢大佬。