2

我正在尝试使用 Sprite Kit。我正在尝试用 alpha png 掩盖图像。这很容易,但我找不到有关如何使用 alpha 值屏蔽图像的信息。现在它渲染像素或不渲染。

从 SKCropNode 上的文档中它说:如果掩码中的像素的 alpha 值小于 0.05,则图像像素被屏蔽掉。

所以这是我现在这样做的合乎逻辑的结果:

CGPoint location = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));

SKCropNode *cropNode = [SKCropNode node];
SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"Spaceship"];
SKSpriteNode *maskImage = [SKSpriteNode spriteNodeWithImageNamed:@"mask5.png"];
[maskImage setName:@"mask"];

[cropNode setMaskNode:maskImage];
[cropNode addChild:sprite];
[cropNode setPosition:location];

[self addChild:cropNode];

结果是边缘呈锯齿状。有没有办法以边缘平滑的方式掩盖图像?

谢谢!

4

1 回答 1

0

不,掩码节点的工作方式是二进制的,无论是显示还是隐藏。Apple 在他们的文档中提供了一个示例,之后他们将模糊过滤器应用于 masknode。一个 1px 的框模糊可能会为您做到这一点。

文档 -> 蒙版和模糊效果

于 2014-03-09T13:28:12.853 回答