我完成了一个迷宫游戏,一个角色四处走动,收集东西并射击敌人。游戏完全动态制作。我现在想要添加一个战争迷雾,角色只能在某个圆半径上看到他周围的什么。我使用精灵/电影剪辑创建了图像和背景图像。
我最初的想法是在整个地图上创建5 * 5个黑色方块,并让它们都运行一个事件监视程序,看看它们是否被击中,如果它们被击中,则将alpha更改为0。但我认为它可能会因太多EVENT活跃而陷入困境。有更好的方法吗?
感谢。
答案 0 :(得分:2)
据我所知,你需要在小地图上创造战争迷雾,以便英雄只能在预定义的半径范围内看到敌人等,如果他已经访问了地图的那一部分,也可以看到地形。像这样:
黄爪是英雄,红点是敌人。尚未访问地图的较暗部分。
你可以通过使用2个面具来实现这个效果,1个用于掩蔽显示部分地形,另一个用于遮蔽地形和敌人或其他物体的突出部分。所以你的图层结构应该是这样的:
设置图层后,您只需调用
即可beginFill(0xFF0000); // any color will do
drawCircle(mHero.x, mHero.y, radius);
endFill();
黑暗地形蒙版({1}}对象上的方法。 mHero是小地图上英雄符号的实例名称。
这是揭示部分,对于英雄在小地图上的位置的突出显示,您需要对突出显示的地形蒙版执行相同的操作,但在每次绘制调用时添加graphics
方法,旧圈子没有得到保存。对于突出显示的地形图图形对象,您将拥有类似的内容:
clear()