仅在其父级边界内显示 Sprite 图像

Display Sprite Image Only Within Bounds of it's Parent

我希望能够显示一个图像,该图像仅显示图像中父级范围内的部分。如果图像超出其父边界,图像的那些部分将变为透明。

举个例子,假设我有一个 100 x 100 的 sprite,并且向这个 sprite 添加了一个子 sprite,它是 200 x 200 并且颜色为蓝色,那么只会显示 100 x 100 的蓝色 sprite屏幕上。如果可能的话,这就是我希望做的。

你可以使用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 属性。

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