1

我向 SCNNode 添加了一个包含 SKSpriteNode 图像的 SKScene,但是该图像看起来超出了 SCNode(面部节点)的边界。如何在 SCNode 面的边界内显示图像?

let faceSCNNode = scnScene.rootNode.childNodeWithName("faceSCNNodeID", recursively:true)  

let sprite = SKSpriteNode()
sprite.texture = SKTexture(image: UIImage(data: imageData)!)
sprite.size.width = self.texture!.size().width
sprite.size.height = self.texture!.size().height
sprite.position = CGPoint(x:CGRectGetMidX(frame), y:CGRectGetMidY(frame));

let faceSKScene = SKScene(size: sprite.size)
faceSKScene!.addChild(sprite)

faceSCNNode?.geometry?.firstMaterial?.diffuse.contents = faceSKScene

图像在 faceSKScene 中正确显示。一旦我将 faceSKScene 添加到 SKNode 的内容中,它会覆盖整个 SKNode,但大部分图像不会显示。看起来它可以拉伸,但我不确定。

4

1 回答 1

1

您应该检查的第一件事是您的捆绑包实际上包含 2x 和可能 3x 比例的图像。此加载逻辑设置 SKSpriteNode 大小,但该属性以点为单位,而纹理通常以像素为单位。如果您有 2x 图像,则点大小为像素大小的 1/2。此外,请检查图像的宽度和高度是否均匀,因为奇数尺寸的图像在 1x、2x、3x 比例尺寸下无法正常播放。

于 2016-06-08T23:19:41.130 回答