我正在尝试使用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];
结果是边缘是锯齿状的。有没有一种方法可以遮罩图像,使边缘平滑?
谢谢!
不,掩码节点的工作方式是二进制的,要么显示,要么隐藏。苹果在他们的文档中提供了一个例子,他们在面具上应用了模糊滤镜。一个1px的框模糊就可以了。
文档->蒙版和模糊效果