Egret手机游戏战争迷雾
一、创建战争迷雾类:
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手机游戏战争迷雾相关推荐
- 《C++游戏开发》笔记十四 平滑过渡的战争迷雾(二) 实现:真正的迷雾来了
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9712321 作者:七十一雾央 新浪微博:http:// ...
- 《C++游戏开发》笔记十三 平滑过渡的战争迷雾(一) 原理:Warcraft3地形拼接算法...
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9611887 作者:七十一雾央 新浪微博:http:// ...
- 《C++游戏开发》笔记十二 战争迷雾:初步实现
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9475979 作者:七十一雾央 新浪微博:http:// ...
- 2D游戏的战争迷雾实现方式
转自: http://bbs.gameres.com/forum.php?mod=viewthread&tid=201878&extra=page%3D16%26filter%3Dso ...
- 在Unity中为即时战略游戏实现战争迷雾(上)
本文将由游戏开发工程师Ariel Coppes分享在Unity中为即时战略游戏实现战争迷雾效果. 过去三年中,我一直在Ironhide Game Studio开发移动即时战略游戏<钢铁战队> ...
- cocos2dx 游戏当中的战争迷雾
使用cocos2dx的tilemap制作了个斜45度的rts游戏,这东西战争迷雾怎么可能少了,于是乎就琢磨怎么做一个. 最开始的想法很简单,建立一个二维数组,里面清0,在你的视野的地方放1. 继续用t ...
- RTS游戏中的战争迷雾原理
原文:http://blog.csdn.net/xoyojank/article/details/12259161 说到战争迷雾(Fog of War, FOW), 其实还是非常普遍的一项技术, 在R ...
- 在Unity中为即时战略游戏实现战争迷雾(下)
本文将在Unity中为即时战略游戏实现战争迷雾的一种新方法. 在上一篇文章中,游戏开发工程师Ariel Coppes分享了<钢铁战队>中战争迷雾效果的实现方法,本文他将介绍新的一种实现方法 ...
- 《C++游戏开发》笔记十三 平滑过渡的战争迷雾(一) 原理:Warcraft3地形拼接算法
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9611887 作者:七十一雾央 新浪微博:http:/ ...
最新文章
- 有了图分析,可解释的AI还远吗?
- F# ≥ C# (Record)
- 如何筑起第二座“长城”?长城汽车:唯有科技
- mysql数据库主从不同步的解决方法
- 喜讯丨神策数据四大客户案例斩获大数据“星河”案例
- Linux系统优化脚本
- SpringMVC-动力节点-王鹤
- php团队规范,PHP团队 编码规范 代码样式风格规范
- UVA11019 Matrix Matcher【hash傻逼题】【AC自动机好题】
- FoneDog Toolkit for Android如何从Android恢复丢失的文件
- linux 文件名加粗,konsole与用粗体绘制强调色
- 转载:每年考证时间表
- 电脑版微信多开显示网络代理服务器,电脑版微信多开的方法_电脑维护
- 分享一个强大的数据可视化低代码开发平台
- 思科模拟器 Cisco Packet Tracer 8.2免登录以及汉化步骤
- 如何利用计算机窃取信息,震惊部 · 用非接触的方式,窃取一台电脑上的信息...
- 如何解决iOS设备AppStore下载一直是正在载入中
- 利用干支年反推公元年份的计算公式推导
- 创建型模式之抽象工厂(AbstractFactory)
- 微信服务号开发-获取用户位置信息