一、创建战争迷雾类:

module gtm {export class Fog extends egret.DisplayObjectContainer{public constructor() {super();}private bitmap:egret.Bitmap;private bgSh:egret.Shape;private fogLayer:egret.DisplayObjectContainer;public init(w:number, h:number):void {this.bitmap = new egret.Bitmap();this.addChild(this.bitmap);this.bgSh = new egret.Shape();this.bgSh.graphics.beginFill(0x000000, 0.7);this.bgSh.graphics.drawRect(0, 0, w, h);     //  创建黑色遮罩覆盖战场this.bgSh.graphics.endFill();this.con = new egret.DisplayObjectContainer();this.con.addChild(this.bgSh);this.fogLayer = new egret.DisplayObjectContainer();this.con.addChild(this.fogLayer);this.texture = RES.getRes("fog_png");   //以人物为中心的圆形视野}private con:egret.DisplayObjectContainer;private bitmaps:egret.Bitmap[] = [];private texture:egret.Texture;private getBitmap():egret.Bitmap {if (this.bitmaps.length) {return this.bitmaps.pop();}return new egret.Bitmap(this.texture);}public updateFogs(fogs:{x:number, y:number, r:number}[]):void {this.fogLayer.removeChildren();for (let i:number = 0; i < fogs.length; i++) {let fog = this.getBitmap();fog.width = fog.height = fogs[i].r * 2;fog.x = fogs[i].x - fog.width / 2;fog.y = fogs[i].y - fog.height / 2;this.fogLayer.addChild(fog);}this.fogLayer.blendMode = egret.BlendMode.ERASE;//(这步很关键,fog.png层级必须在遮罩的上方,这样ERASE相交才能擦除遮罩视野)let renderTexture:egret.RenderTexture = new egret.RenderTexture();renderTexture.drawToTexture(this.con);for (let i:number = this.fogLayer.numChildren - 1; i >= 0; i--) {this.bitmaps.push(this.fogLayer.removeChildAt(i) as egret.Bitmap);}if (this.bitmap.texture) {this.bitmap.texture.dispose();}this.bitmap.texture = renderTexture;}public  dispose(){}}
}




在需要用到的类里实例化fog类  然后开启序列帧事件(每一帧都调用)  Egret举例:this.myPage.addEventListener(egret.Event.ENTER_FRAME, this.enterFrame, this);
//fog.png


 
让我们来看看结果吧?   就是酱紫:哈哈  是不是很神奇

Egret手机游戏战争迷雾相关推荐

  1. 《C++游戏开发》笔记十四 平滑过渡的战争迷雾(二) 实现:真正的迷雾来了

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9712321 作者:七十一雾央 新浪微博:http:// ...

  2. 《C++游戏开发》笔记十三 平滑过渡的战争迷雾(一) 原理:Warcraft3地形拼接算法...

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9611887 作者:七十一雾央 新浪微博:http:// ...

  3. 《C++游戏开发》笔记十二 战争迷雾:初步实现

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9475979 作者:七十一雾央 新浪微博:http:// ...

  4. 2D游戏的战争迷雾实现方式

    转自: http://bbs.gameres.com/forum.php?mod=viewthread&tid=201878&extra=page%3D16%26filter%3Dso ...

  5. 在Unity中为即时战略游戏实现战争迷雾(上)

    本文将由游戏开发工程师Ariel Coppes分享在Unity中为即时战略游戏实现战争迷雾效果. 过去三年中,我一直在Ironhide Game Studio开发移动即时战略游戏<钢铁战队> ...

  6. cocos2dx 游戏当中的战争迷雾

    使用cocos2dx的tilemap制作了个斜45度的rts游戏,这东西战争迷雾怎么可能少了,于是乎就琢磨怎么做一个. 最开始的想法很简单,建立一个二维数组,里面清0,在你的视野的地方放1. 继续用t ...

  7. RTS游戏中的战争迷雾原理

    原文:http://blog.csdn.net/xoyojank/article/details/12259161 说到战争迷雾(Fog of War, FOW), 其实还是非常普遍的一项技术, 在R ...

  8. 在Unity中为即时战略游戏实现战争迷雾(下)

    本文将在Unity中为即时战略游戏实现战争迷雾的一种新方法. 在上一篇文章中,游戏开发工程师Ariel Coppes分享了<钢铁战队>中战争迷雾效果的实现方法,本文他将介绍新的一种实现方法 ...

  9. 《C++游戏开发》笔记十三 平滑过渡的战争迷雾(一) 原理:Warcraft3地形拼接算法

    本系列文章由七十一雾央编写,转载请注明出处.  http://blog.csdn.net/u011371356/article/details/9611887 作者:七十一雾央 新浪微博:http:/ ...

最新文章

  1. 有了图分析,可解释的AI还远吗?
  2. F# ≥ C# (Record)
  3. 如何筑起第二座“长城”?长城汽车:唯有科技
  4. mysql数据库主从不同步的解决方法
  5. 喜讯丨神策数据四大客户案例斩获大数据“星河”案例
  6. Linux系统优化脚本
  7. SpringMVC-动力节点-王鹤
  8. php团队规范,PHP团队 编码规范 代码样式风格规范
  9. UVA11019 Matrix Matcher【hash傻逼题】【AC自动机好题】
  10. FoneDog Toolkit for Android如何从Android恢复丢失的文件
  11. linux 文件名加粗,konsole与用粗体绘制强调色
  12. 转载:每年考证时间表
  13. 电脑版微信多开显示网络代理服务器,电脑版微信多开的方法_电脑维护
  14. 分享一个强大的数据可视化低代码开发平台
  15. 思科模拟器 Cisco Packet Tracer 8.2免登录以及汉化步骤
  16. 如何利用计算机窃取信息,震惊部 · 用非接触的方式,窃取一台电脑上的信息...
  17. 如何解决iOS设备AppStore下载一直是正在载入中
  18. 利用干支年反推公元年份的计算公式推导
  19. 创建型模式之抽象工厂(AbstractFactory)
  20. 微信服务号开发-获取用户位置信息

热门文章

  1. python+selenium自动化软件测试(第2章)
  2. Sieve of Eratosthenes algorithm
  3. 谈谈培训机构的-骗局-给新人一些建议
  4. SetStretchBltMode
  5. 腾讯、百度、网易游戏、华为Offer及笔经面经
  6. 安川服务器报b33怎么维修,YASKAWA安川伺服报警A10 A41 A32 AC9 F50 b33没显示等维修
  7. 亚硝酸还原酶(NiR)试剂盒市场深度研究分析报告
  8. 文本匹配(语义相似度)综述
  9. 上三角矩阵 元素 选取 组成一向量
  10. 【强烈推荐】非常有用的开源项目软件集合