实际上,我正在从另一个平台迁移游戏,我需要生成一个包含两个图像的精灵。 第一个图像将是形状,图案或图章,第二个图像只是一个矩形,将颜色设置为第一个。如果颜色是平面的,那将很容易,我可以使用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。
感谢。
答案 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%透明度以下的所有像素,并将所有像素渲染到此级别以上,因此边缘将是锯齿状而不是平滑褪色。只是不要在面具中使用任何半透明区域,你会没事的。