我可以快照SKNode吗?

时间:2014-09-02 19:52:32

标签: objective-c swift uiimage sprite-kit

我有一个SKScene,我想要对特定图层进行快照。它可以是显示在白色UIView上的图层,其中包含SKView。但最后我想从这一层的状态中略过一下。 提前谢谢!

1 个答案:

答案 0 :(得分:-1)

这对我有用:

    var tempView = UIView(frame: CGRectMake(0, 0, 500, 500))
    var tempSKView = SKView(frame: tempView.frame)
    var tempScene = SKScene(size: tempSKView.bounds.size)

    var lineTexture = SKTexture()
    lineTexture = skView.textureFromNode(scene.lineLayer)

    var lineLayerCopy = SKSpriteNode(texture: lineTexture)
    lineLayerCopy.anchorPoint = CGPoint(x: 0.0, y: 0.0)
    lineLayerCopy.size = CGSizeMake(500, 500)
    tempScene.addChild(lineLayerCopy)
    tempScene.backgroundColor = UIColor.whiteColor()
    tempSKView.presentScene(tempScene)
    tempView.addSubview(tempSKView)
    self.view.addSubview(tempView)

注意:anchorPoint是必不可少的。它强制场景位于中心位置,因此您可以获得完美的图像。