仅在其父级的界限内显示精灵图像

时间:2015-12-11 17:44:52

标签: swift sprite-kit sprite parent-child transparent

我希望能够显示一个图像,该图像仅显示图像中父图像范围内的部分。如果图像延伸到其父级边界之外,则图像的这些部分将变为透明。

只是一个例子,但是说我有一个100 x 100的精灵和一个子精灵被添加到这个精灵中它是200 x 200并且是蓝色的,只有100 x 100的蓝色精灵会显示在屏幕。这是我希望尽可能做的事情。

1 个答案:

答案 0 :(得分:1)

您可以使用SKCropNode来实现您的需求:

let nodeToMask = SKSpriteNode(color: SKColor.blueColor(), size: CGSize(width: 200, height: 200))

let mask = SKSpriteNode(color: SKColor.blackColor(), size: CGSize(width: 100, height: 100))

let cropNode = SKCropNode()

cropNode.addChild(nodeToMask)
cropNode.maskNode = mask
cropNode.position = CGPoint(x: CGRectGetMidX(frame), y: CGRectGetMidY(frame))

addChild(cropNode)

在这里,你有:

  1. nodeToMask对象,它是SKSpriteNode并表示您要屏蔽的图像。您可以将其作为子项添加到裁剪节点。

  2. cropNode对象,它是您计划屏蔽的图像的容器。

  3. 您有一个SKSpriteNode的实际面具,并将其指定给裁剪节点的maskNode属性。

  4. 有关SKCropNode的更多详细信息,请查看docs