战争迷雾效果 第1章_要探索,不要地图全开!
这次我要介绍一个很好玩的东西——战争迷路。
(小若:喂!迷路?)
笨木头花心贡献,啥?花心?不呢,是用心~
转载请注明,原文地址: http://www.benmutou.com/archives/455
其实这么解释不太好解释,我们举个例子。魔兽争霸相信大家都玩过,游戏开始时,地图上到处都是黑蒙蒙的一片,什么都看不到,我们必须一边走一边探路。
(小若:我知道了!不就是地图探索嘛!)
就是这样,我们来看看下图就更加清楚了(图片资源来自网络):
(小若:我说,你早点放图不就好了,为什么要解释这么多!)
我们即将用Cocos2d-x的CCTMXTiledMap来实现这个功能。
(小若:好棒!)
但是,在这之前,我们得先补点数学理论知识。
(小若:我讨厌数学!)
1. 版权问题
在这之前,我必须要声明,战争迷雾的制作原理参考了以下这篇文章:
http://bbs.9ria.com/thread-157487-1-1.html
这篇文章写得很好,大家感兴趣的可以看看。本教程使用到的理论基础和素材均来自这篇文章,特此声明。同时,十分感谢网友的无私奉献。
2. 神奇的数学
我们来看看一张瓦片地图的图素:
至于为什么这么排序,也许不在本教程讨论范围之内,我只给大家介绍这样排序能带来的好处。
(小若:其实你自己也不懂,是不是!)
我们来看看以下编号的4张图片:4号、8号、1号、2号。把这几张小图拼起来刚好是这样的:
小图拼起来
也就是说,这四张图刚好是四个白色角落的图。
(小若:那又怎么样?)
现在,我们要做一件很不可理喻的事情,我们把每张小图划分为四个部分,每个部分是一个顶点,顶点默认值都为0,例如下图:
我们把图素白色部分定义为非空,黑色为空,则根据这个定义4、8、2、1号图素的顶点分别如下:
只有这四张图素才这样定义,因为这四张图素可以组合出任意其它的图素。
(小若:噗,我不信。)
举个例子,4号图素和8号图素相加等于什么?看看下图:
我们把四个顶点值相加: 0 + 0 + 8 + 4 = 12
然后我们再回头看看12号图素,是不是和上图非常接近?
同理,我们试试结合4号、8号以及2号图素:0 + 4 + 8 + 2 = 14,我们看看14号图素是不是刚好和4、8、2号图素叠加后的图很接近?
我们需要的一个理论支持就是:将4、8、2、1号图素进行叠加,将叠加后的4个顶点值相加,得到的值即为所需的图素编号。
3. 这又有什么作用
我们花了这么大的功夫去得到这个十分神奇的结论,那,它到底有什么作用呢?而且,旁白为什么没有吐槽呢?
(小若:喂!你不准吐槽我!)
这一切都是为了平滑过渡,不信的话,看看下图,下图就是把图素随机混乱拼接的后果:
我想,这种战争迷雾,我们宁愿不要。
使用前面所说的规则,就可以让图素以最佳效果进行拼接。
具体这个规则怎么使用,我们来看看例子,看下图:
我们只留意图中标明的4个图素格子,当我们点击了左上角的图素格子时,我们做以下操作:
1)当前图素格子右下角的顶点值设为4
2)当前图素格子右边相邻的格子的左下角顶点值设为8
3)当前图素格子下方相邻的格子的右上角顶点值设为1
4)当前图素格子右下方相邻的格子的左上角顶点值设为2
结合上图一起理解会比较好。
(小若:图画得超级丑!你就不能画好点吗?)
现在,大家动手试试点击右上角的格子时,发生什么事情?
我把当前点击的格子用绿色不规则花边标明了。
(小若:我不想吐槽了,你绝对不是做画家的材料!)
我们一步步再按照上面说的四步进行操作,最后格子的顶点数值就如上图一样了。
我们继续关注当前点击的格子,我们计算一下它的四个顶点的和:0 + 0 + 8 + 4 = 12。所以将当前格子的图素换成12号图素。以此类推。
(小若:虽然我不是很明白,但是感觉好神奇的样子!)
好了,理论知识到此结束了。也许大家还很模糊,但是没有关系,用代码实现一遍,就能轻松地理解了
战争迷雾效果 第1章_要探索,不要地图全开!相关推荐
- 【笨木头Cocos2dx 041】战争迷雾效果 第4章_真正的迷雾来了!
错过了前面章节? 没关系,传送门在这: 战争迷雾效果 第1章_要探索,不要地图全开! 战争迷雾效果 第2章_先把地图加进来 战争迷雾效果 第3章_准确地获取屏幕上的瓦片位置 经过这么多铺垫,我们要来正 ...
- 战争迷雾效果 第4章_真正的迷雾来了!
原文地址:http://www.benmutou.com/blog/archives/485 经过这么多铺垫,我们要来正式编写实现迷雾效果的代码了. (小若:快点开始写,别唠叨了!) 笨木头花心贡献, ...
- 战争迷雾效果 第05章 项目源码下载
笨木头花心贡献,啥?花心?不呢,是用心~ 转载请注明,原文地址:http://www.benmutou.com/blog/archives/502 正文: 关于战争迷雾效果的项目源码一直没有放出来,原 ...
- Unity3D技术开发之战争迷雾效果
相信玩过Dota,英雄联盟等即时竞技类游戏的朋友都知道战争迷雾,这次做了一个战争迷雾的效果: 战争迷雾大家应该很熟悉了,一开始地图全部都是黑的,只有主角的一定范围内能看得到.随着主角的移动,未探索的区 ...
- Unity3D战争迷雾效果
战争迷雾demo视频 这次做了一个战争迷雾的效果: 战争迷雾大家应该很熟悉了,一开始地图全部都是黑的,只有主角的一定范围内能看得到.随着主角的移动,未探索的区域变成了可见. 我这个demo还做了视角切 ...
- cocos2dx 实现战争迷雾效果
游戏里面的战争迷雾或者刮刮乐效果可以用下面的方法实现 function MainScene:onCreate()local strVertSource = "attribute vec4 a ...
- Unity MOBA类型游戏的战争迷雾效果
基于视野(FOV)的战争迷雾,例如LOL的视野:鼠标右键点击地板,目标移动,同时显示角色周围视野,鼠标滚轮可以调节远近. Unity版本:2019.4.1f1 1.新建工程---右键3D Object ...
- 舞力全开加速_国行舞力全开评测:丝滑得不像是育碧服务器!
"奶奶你预定的游戏发售啦!" 盼星星盼月亮,从育碧说好的"夏季"等到寒冬,我们终于等来了国行版的<舞力全开>! 试玩版中如是写道 我们也在第一时间购 ...
- 《C++游戏开发》笔记十四 平滑过渡的战争迷雾(二) 实现:真正的迷雾来了
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9712321 作者:七十一雾央 新浪微博:http:// ...
- 在Unity中为即时战略游戏实现战争迷雾(上)
本文将由游戏开发工程师Ariel Coppes分享在Unity中为即时战略游戏实现战争迷雾效果. 过去三年中,我一直在Ironhide Game Studio开发移动即时战略游戏<钢铁战队> ...
最新文章
- mysql分别写出3条索引_MySQL3:索引
- [机械]“重工业面临两大危机”——向文波(三一重工股份有限公司执行总裁)
- GridControl 选择列、复选框全选(上)
- 第47课 称心如意的输入 《小学生C++趣味编程》
- SpringBoot+JWT整合-解决登陆验证问题
- 学习jQuery之旅--新手必须知道的常用方法
- springMVC异常处理器:自定义异常处理器捕获系统异常,控制异常页面跳转
- 如何看待绿色数据中心
- 计算机硬盘怎么设置ntfs,如何把计算机硬盘文件系统fat32改为ntfs.doc
- python编程实现华氏温度和摄氏温度转换
- 揭秘JavaScript中“神秘”的this关键字
- 做游戏,学编程(C语言) 15 太鼓达人
- 使用python为Excel插入附件
- ckfinder 2.3 破解
- Ubuntu下如何查看GPU版本和使用信息?
- mysql eav设计模型_Magento 2数据库EAV模型结构
- alxc tool 报错数组超出了界限_Stack Overflow上59万浏览量的提问:为什么会发生数组越界?
- html游戏让目标人物移动,用仿ActionScript的语法来编写html5——第三篇,鼠标事件与游戏人物移动...
- 腾讯加入专利保护社区 OIN
- 电信智能手机android,电信智能手机推荐【图文】