我希望我的整个游戏随着游戏的进行变得越来越灰暗。我怎样才能做到这一点?我想到的唯一解决方案是为我的游戏中的每个项目添加一个补间(补间的末尾是灰色的对象),拥有所有对象的数组,并使该数组中的所有项目在帧中缓慢前进(当然是一个糟糕的解决方案)。我也可以将我的整个游戏放在一个电影剪辑中,然后进行补间。但我不能(或不知道如何)这样做,因为我不是直接从 Flash Professional 创建游戏,而是使用引擎(Citrus Engine)。是否有某种过滤器可以改变我整个游戏的颜色?还是另一种解决方案?谢谢!
2 回答
您可以使用 Greensock 的 TweenLite/TweenMax 和 colorMatrixFilter。
转到http://www.greensock.com/tweenlite/向下滚动到插件资源管理器并使用 walues 来查看最适合您的。我想“饱和度”是您正在寻找的那个。
如果您不想使用外部库,您仍然可以使用 Flash 的 ColorMatrixFilter,尽管设置所有矩阵等可能会很棘手。
正如您在Main.as
(https://github.com/alamboley/Citrus-Engine/blob/master/src/Main.as)中看到的那样,主要扩展CitrusEngine
,
当您走得更远时,您可以看到CitrusEngine
扩展MovieClip
(https://github.com /alamboley/Citrus-Engine/blob/master/libs/com/citrusengine/core/CitrusEngine.as)。
据我所知,您可以像这样对 MovieClips 应用过滤器:
var matrix:Array = new Array();
matrix = matrix.concat([1,0,0,0,255]);
matrix = matrix.concat([0,1,0,0,0]);
matrix = matrix.concat([0,0,1,0,0]);
matrix = matrix.concat([0,0,0,1,0]);
var colorFilter:ColorMatrixFilter = new ColorMatrixFilter(matrix);
this.filters = [colorFilter];
这样您就可以将灰度滤镜添加到 MovieClip。
Try adding this inside Main.as
.
As I wrote before this is only a guess, but please give it a try :)