在Swift/SpriteKit中,您可以在CropNode中使用ShapeNode作为遮罩吗

在Swift/SpriteKit中,您可以在CropNode中使用ShapeNode作为遮罩吗,swift,sprite-kit,skshapenode,skcropnode,skeffectnode,Swift,Sprite Kit,Skshapenode,Skcropnode,Skeffectnode,我一直在尝试使用SKCropNode将随机的SKShapeNode形状与纹理相结合,但似乎不起作用。我假设SKCropNodes仅适用于位图图形,如PNG //define sprite as crop node let cropSprite = SKCropNode() //create spriteNode with texture and add it let texSprite = SKSpriteNode(imageNamed:

我一直在尝试使用
SKCropNode
将随机的
SKShapeNode
形状与纹理相结合,但似乎不起作用。我假设
SKCropNodes
仅适用于位图图形,如PNG

       //define sprite as crop node
       let cropSprite = SKCropNode()
       //create spriteNode with texture and add it
       let texSprite = SKSpriteNode(imageNamed: "rock")
       cropSprite.addChild(texSprite)
       //set mask of cropping Sprite to (predefined) shape node with .maskNode
       cropSprite.maskNode = myShapeNode
       //add final cropped sprite to scene
       self.addChild(cropSprite)
在这种情况下,不会显示任何内容。如果我没有设置:

cropNode.maskNode = myShapeNode
cropSprite显示为添加纹理的普通精灵

有什么想法吗

非常感谢,,
Kw

您是如何设置myShapeNode的?这是图像吗?在我看来,你的设置是正确的。我能想到的唯一一件事是你在设置
myShapeNode
时犯了错误。你能告诉我们你是如何设置myShapeNode的吗?或者你能给我们一张面具的图片吗?我知道这是不可能的。无论您使用的是什么形状,遮罩都具有形状框架的大小。这就是以前的情况。。。您可以做的是从形状创建纹理,并将其设置为遮罩。myShapeNode是一个SKShapePath设置,定义了点并关闭了路径。如何将形状转换为纹理?感谢您的评论。您是如何设置myShapeNode的?这是图像吗?在我看来,你的设置是正确的。我能想到的唯一一件事是你在设置
myShapeNode
时犯了错误。你能告诉我们你是如何设置myShapeNode的吗?或者你能给我们一张面具的图片吗?我知道这是不可能的。无论您使用的是什么形状,遮罩都具有形状框架的大小。这就是以前的情况。。。您可以做的是从形状创建纹理,并将其设置为遮罩。myShapeNode是一个SKShapePath设置,定义了点并关闭了路径。如何将形状转换为纹理?谢谢你的评论。