精灵套件,掩蔽节点是别名

时间:2014-03-09 12:06:45

标签: ios objective-c sprite-kit image-masking

我正在尝试使用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];

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

谢谢!

1 个答案:

答案 0 :(得分:0)

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

Documentation -> Mask and blur effect