【问题标题】:SpriteKit screenshot of view off screenSpriteKit 屏幕外视图截图
【发布时间】:2015-12-30 19:30:41
【问题描述】:

我正在 SpriteKit 中创建一个垂直滚动游戏,我想在游戏结束后截取整个游戏场景,包括滚动到屏幕外的部分。到目前为止,我只能使用以下方法捕获屏幕可见的部分:

    let bounds = self.scene!.view?.bounds
    UIGraphicsBeginImageContextWithOptions(bounds!.size, true, UIScreen.mainScreen().scale)
    self.scene?.view!.drawViewHierarchyInRect(bounds!, afterScreenUpdates: true)
    screenshot = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()

是否可以得到整个场景?

谢谢。

【问题讨论】:

  • 据我所知,您只能捕获用户可见的视图。如果我错了,有人纠正我

标签: ios swift screenshot


【解决方案1】:

我正在查看您的代码,但我没有发现任何问题;事实上,我对其进行了测试(使其成为一个函数)并且它运行良好。

func getScreenshot(scene: SKScene) -> UIImage {
    let bounds = self.scene!.view?.bounds
    UIGraphicsBeginImageContextWithOptions(bounds!.size, true, UIScreen.mainScreen().scale)
    self.scene?.view!.drawViewHierarchyInRect(bounds!, afterScreenUpdates: true)
    let screenshot = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()

    return screenshot;
}

我自己测试了它,它是有效的;希望对你有帮助:)

【讨论】:

  • 也适用于我,但必须在主线程中执行
猜你喜欢
  • 2011-01-20
  • 2017-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多