【问题标题】:iOS Sprite Kit - SKSpriteNode - blend two spritesiOS Sprite Kit - SKSpriteNode - 混合两个精灵
【发布时间】:2014-03-05 12:35:29
【问题描述】:

实际上,我正在从另一个平台迁移游戏,我需要生成一个包含两个图像的精灵。 第一个图像类似于表格、图案或印章,第二个图像只是一个将颜色设置为第一个的矩形。如果颜色是平面的,那会很容易,我可以使用 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。

谢谢。

【问题讨论】:

    标签: sprite-kit


    【解决方案1】:

    查看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% 透明度的所有像素并渲染所有高于此级别的像素,因此边缘将呈现锯齿状而不是比顺利褪色。只是不要在你的面具中使用任何半透明区域,你会没事的。

    【讨论】:

    • 询问后我看到了这个解决方案。我仍在努力让它发挥作用,但似乎这就是我想要的。谢谢你。
    猜你喜欢
    • 1970-01-01
    • 2014-09-09
    • 2013-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多