Sprite kit iOS雪碧套件-SKSpriteNode-混合两种雪碧

Sprite kit iOS雪碧套件-SKSpriteNode-混合两种雪碧,sprite-kit,Sprite Kit,实际上,我正在从另一个平台迁移一个游戏,我需要生成一个包含两个图像的精灵。 第一个图像类似于表单、图案或戳记,第二个图像只是一个矩形,用于设置第一个图像的颜色。如果颜色是平面的,这将很容易,我可以使用sprite.color和sprite.colorBlendFactor来处理它,但是在某些级别,第二个图像是一个有两种颜色的矩形(例如红色和绿色)。 有没有办法用精灵套件实现这些功能? 我的意思是,类似于使用核心图像过滤器,和CIBlendWithAlphaMask,但只使用图像和掩码图像。()-

实际上,我正在从另一个平台迁移一个游戏,我需要生成一个包含两个图像的精灵。 第一个图像类似于表单、图案或戳记,第二个图像只是一个矩形,用于设置第一个图像的颜色。如果颜色是平面的,这将很容易,我可以使用sprite.color和sprite.colorBlendFactor来处理它,但是在某些级别,第二个图像是一个有两种颜色的矩形(例如红色和绿色)。 有没有办法用精灵套件实现这些功能? 我的意思是,类似于使用核心图像过滤器,和CIBlendWithAlphaMask,但只使用图像和掩码图像。()->使用AlphaMask混合


谢谢。

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

简而言之,您将创建两个
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%透明度的任何像素,并渲染高于此级别的所有像素,因此边缘将锯齿状,而不是平滑褪色。不要在你的面具上使用任何半透明区域,你会没事的。

问了我之后,我看到了这个解决方案。我仍在努力让它发挥作用,但这似乎是我一直在寻找的。谢谢你的支持。