gpt4 book ai didi

actionscript-3 - 如何在矩形 Sprite 内切出 "hole"以看到下面的 Sprite ? ( ActionScript 3)

转载 作者:行者123 更新时间:2023-12-02 01:02:38 25 4
gpt4 key购买 nike

每次我用谷歌搜索这个问题时,我都会看到有关蒙版和混合的令人困惑的信息,这些信息似乎都不能直接适用于我认为应该是一件简单的事情......

这里涉及三个 Sprite ......最底层的 Sprite 几乎是背景。我想在背景上覆盖一个半透明的 Sprite ,然后我想让第三个、最上面的 Sprite 充当一个洞,这样第三个 Sprite 内部的区域就完全透明了,这样背景 Sprite 就完全可见了。

我将如何动态地执行此操作(即使用 Actionscript 图形调用动态绘制 mask Sprite 和孔)?

最佳答案

我知道这已经是很久以前的事了,但只是为了那些可能会寻找同样问题的人。其实很简单(只要用图形类绘制你的Sprite)。

1) 孔加工不灵活:

this.graphics.beginFill(0x666666);
this.graphics.drawRect(0,0,256, 256);
this.graphics.drawCircle(128,128,32);
this.graphics.endFill();

这将创建一个 256 x 256 的矩形,其中有一个 64px 的孔。

2)灵活的孔切割:

显然,当您不使用图形类时,这将不起作用。在这种情况下,我会使用 BlendMode.ERASE

var spr:Sprite = new Sprite();
var msk:Sprite = new Sprite();

addChild(spr);
spr.addChild(msk)

spr.graphics.beginFill(0x666666);
spr.graphics.drawRect(0,0,256, 256);
spr.graphics.endFill();

msk.graphics.beginFill(0x000000);
msk.graphics.drawEllipse(0,0,64,64);
msk.graphics.endFill();
msk.x = 128;
msk.y = 128;

spr.blendMode = BlendMode.LAYER;
msk.blendMode = BlendMode.ERASE;

使用 BlendMode.ERASE 时,您必须始终将父容器的混合模式设置为 BlendMode.LAYER,否则它将无法工作。

我希望这可以帮助某人

关于actionscript-3 - 如何在矩形 Sprite 内切出 "hole"以看到下面的 Sprite ? ( ActionScript 3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2195961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com