iOS Sprite Kit - SKSpriteNode - 混合两个精灵

时间:2014-03-05 12:35:29

标签: sprite-kit

实际上,我正在从另一个平台迁移游戏,我需要生成一个包含两个图像的精灵。 第一个图像将是形状,图案或图章,第二个图像只是一个矩形,将颜色设置为第一个。如果颜色是平面的,那将很容易,我可以使用sprite.color和sprite.colorBlendFactor来玩它,但是有一些级别,其中第二个图像是一个有两种颜色的矩形(例如红色和绿色)。 有没有办法用Sprite Kit实现这些? 我的意思是,使用Core图像过滤器和CIBlendWithAlphaMask,但仅限于Image和Mask图像。 (https://developer.apple.com/library/ios/documentation/graphicsimaging/Reference/CoreImageFilterReference/Reference/reference.html#//apple_ref/doc/uid/TP40004346) - > CIBlendWithAlphaMask。

感谢。

1 个答案:

答案 0 :(得分:0)

查看SKCropNode类(文档here) - 它允许您为其下方的图像设置遮罩。

简而言之,您将创建两个SKSpriteNodes - 一个带有您的印章,另一个带有您的彩色矩形。然后:

SKCropNode *myCropNode = [SKCropNode node];
[myCropNode addChild:colouredRectangle]; // the colour to be rendered by the form/pattern
myCropNode.maskNode = stampNode; // the pattern sprite node

[self addChild:myCropNode];

请注意,结果可能更类似于CIBlendWithMask而不是CIBlendWithAlphaMask,因为裁剪节点会屏蔽5%透明度以下的所有像素,并将所有像素渲染到此级别以上,因此边缘将是锯齿状而不是平滑褪色。只是不要在面具中使用任何半透明区域,你会没事的。