【问题标题】:SKSpriteNode image texture looks stretched when added to SCNNode添加到 SCNNode 时,SKSpriteNode 图像纹理看起来被拉伸了
【发布时间】:2016-09-26 05:22:15
【问题描述】:

我向 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,但大部分图像不会显示。看起来可以拉伸,但我不确定。

【问题讨论】:

    标签: sprite-kit scenekit skspritenode scnnode


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-07
      • 2012-06-24
      • 1970-01-01
      • 2020-01-19
      • 1970-01-01
      相关资源
      最近更新 更多