我正在尝试使用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];结果是边缘参差不齐。有没有办法用边缘平滑的方式遮盖图像?
谢谢!
发布于 2014-03-09 21:28:13
不,遮罩节点的工作方式是二进制的,无论是显示还是隐藏。Apple在他们的文档中提供了一个例子,他们在事后对masknode应用了模糊滤镜。一个1px的框模糊可能会为你做这件事。
https://stackoverflow.com/questions/22281963
复制相似问题