我正在尝试让我的篝火影片剪辑遮盖我的夜间阴影影片剪辑,这样通过删除影片剪辑的该部分就不会显示夜晚的“黑暗”。它会删除它,但不仅仅是影片剪辑的大小,它会删除所有内容:D
我尝试将它放在水平上而不是放在 world.worldTiles
中,并将其从数组中取出,但它仍然做同样的事情。我还尝试将其放置在影片剪辑的 world.worldTiles[i]
上,仍然删除整个影片剪辑。我翻转了 .mask = night
,它只在篝火模型上留下阴影。
这是我正在使用的代码:
public function addWorldObj(obj:MovieClip, c:Class, X:int, Y:int, w:Number, h:Number, f:int)
{
obj = new c();
world.worldTiles.addChild(obj);
obj.x = playerTileCoord.x + X;
obj.y = playerTileCoord.y + Y;
obj.width = w;
obj.height = h;
obj.gotoAndStop(f);
if(obj.Name == "campfire"){
obj.mask = night;
}
world.tilesInWorld.push(obj);
}
夜影影片剪辑只是一个巨大的黑色方 block ,alpha 发生了变化。
篝火是一个不可见的正方形,里面画了一个头顶上的篝火,篝火的宽度和高度是 1 个正方形的大小,它应该遮盖 nightShadow 影片剪辑中的 1 个正方形,但它遮盖了全部。
这是游戏的链接。 http://www.fastswf.com/00CRfh4 游戏从 0.75 alpha 开始向上计数。 你可以点击屏幕右下角的锤子来打开构建菜单(你也可以点击“E”按钮,这也会在测试时杀死你)打开后点击篝火文本并将其放置在看看 map ,看它掩盖了整个夜晚的电影剪辑! :D
最佳答案
我假设夜间影片剪辑与舞台大小相同(可能更大),并且通过将其用作蒙版,它会消失,因为蒙版旨在不可见。这就是为什么当您调用 obj.mask = night
时它会消失。此外,调整蒙版的 Alpha 属性对该蒙版没有影响,因为正如我提到的,蒙版是不可见的。
现在您有几个选择:
- 实现与您已经需要的完全不同的措施来照亮篝火周围的区域。我的意思是,如果您希望篝火周围的区域被照亮,并随着您远离篝火而逐渐消失到夜晚。
- 如果您不关心照亮篝火周围的区域,但至少让篝火现在因夜间图层而显得暗淡,也许您可以尝试将篝火对象放置在夜间图层上方。
关于actionscript-3 - 遮盖 2 个影片剪辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25533628/