Egret社区

求地图遮罩方案,新手求助

2016-8-11 08:26
469212
5银子
现在有个需求就是做游戏地图的时候,随着角色的移动,地图会逐渐可见,大家应该都玩过类似探索地图的游戏,但是实在想不出靠谱的方案去怎么实现这种不规则的遮罩效果,希望大家指点,越详细越好,谢谢啦。
IMG_0962.PNG

最佳答案

查看完整内容

战争迷雾的合成对egret来说,性价比不高,条件允许的话,做个镂空的png,设置mask即可
分享到 :
1 人收藏

12 个回复

倒序浏览
luxuelin  登堂入室 | 2016-8-12 17:42:55
jj229937432 发表于 2016-8-12 17:20
合成图片,指的是什么写法,我只知道RenderTexture 可以合成图片,现在也是这么写的,但是有个问题,rend ...

https://github.com/egret-labs/eg ... aster/base64texture
你看看这个库,我找到了哈哈

点评

真棒,帮我大忙了!  发表于 2016-8-14 11:34
nofastfat  圆转纯熟 | 2016-8-11 08:26:23
战争迷雾的合成对egret来说,性价比不高,条件允许的话,做个镂空的png,设置mask即可
nofastfat  圆转纯熟 | 2016-8-11 11:22:00
战争迷雾的合成对egret来说,性价比不高
jj229937432  圆转纯熟 | 2016-8-11 17:54:46
nofastfat 发表于 2016-8-11 11:22
战争迷雾的合成对egret来说,性价比不高,条件允许的话,做个镂空的png,设置mask即可 ...

如果可见区域的大小是固定的话,我就不愁了,直接遮罩,现在的问题是探索过的地方是永久可见的,也就是说每次遮罩显示的区域是逐渐扩大的,怎么解?有没有什么办法能让图片上的某些像素的透明度为0?
jj229937432  圆转纯熟 | 2016-8-11 18:00:49
本帖最后由 jj229937432 于 2016-8-11 18:02 编辑
ifyx 发表于 2016-8-11 10:36
这种的效果,一般是指 战争迷雾, 你可以自行在网搜搜索下:“战争迷雾算法” ...

算法的思路我大概知道,但是不知道有没有什么办法能让图片上的某些像素的透明度为0?因为地图的可见区域是越来越大的,不知道如何去画这个遮罩,实在是不知道怎么办好了,希望能指点迷津。
nofastfat  圆转纯熟 | 2016-8-12 16:28:33
jj229937432 发表于 2016-8-11 17:54
如果可见区域的大小是固定的话,我就不愁了,直接遮罩,现在的问题是探索过的地方是永久可见的,也就是说 ...

那还是只能传统的去合成图片,缓存下来
luxuelin  登堂入室 | 2016-8-12 16:41:42
你试试看png的文件格式怎么表示透明度,然后你弄个算法,根据坐标点算一下哪些坐标区域是透明的。然后你用一个通过字符串转成image的一个函数,试试。那个函数我前两天还看见过,想不起来了。再看到了我贴上来。
jj229937432  圆转纯熟 | 2016-8-12 17:15:15
luxuelin 发表于 2016-8-12 16:41
你试试看png的文件格式怎么表示透明度,然后你弄个算法,根据坐标点算一下哪些坐标区域是透明的。然后你用 ...

谢谢,但是egret的位图纹理texture里没有找到能够修改像素的方法,哪有类似的技术贴吗,要是能设置透明像素点,那就好办了。
jj229937432  圆转纯熟 | 2016-8-12 17:20:24
nofastfat 发表于 2016-8-12 16:28
那还是只能传统的去合成图片,缓存下来

合成图片,指的是什么写法,我只知道RenderTexture 可以合成图片,现在也是这么写的,但是有个问题,rendertexture无法多次使用,总有警告说webgl实例过多什么的,好像内存我也没控制住,用多了就卡死了,希望大侠指点。
luxuelin  登堂入室 | 2016-8-12 17:41:59
jj229937432 发表于 2016-8-12 17:20
合成图片,指的是什么写法,我只知道RenderTexture 可以合成图片,现在也是这么写的,但是有个问题,rend ...

有一种做法是用base64字符串生成一个图片,你看看github上的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部