4

Sprite Kit 中有没有一种方法可以将屏幕(所有当前SKScene渲染的节点)捕获到一个SKTexture,以便我可以应用 CIFilter,然后将 SKTexture 分配回一个新的SKSpriteNode

我知道我可以设置一个SKEffectNode, 作为我的节点树的父级,应用一个过滤器等并以这种方式获得结果,但我真的需要一个过滤 SKTexture(或SKSpriteNode)我以后可以重用?

编辑:

可能的解决方案:

textureFromNode:
Renders and returns a Sprite Kit texture that contains the node’s contents.

是的,有效:

   SKTexture *texture = [[self view] textureFromNode:[self scene]];
   [blurSprite setTexture:texture];
4

2 回答 2

7

来自苹果文档:

textureFromNode:渲染并返回包含节点内容的 Sprite Kit 纹理。

代码示例:

   SKTexture *texture = [[self view] textureFromNode:[self scene]];
   [blurSprite setTexture:texture];
于 2014-06-02T20:59:24.770 回答
2

您应该尝试snapshotViewAfterScreenUpdates:使用UIView.

SKSceneSKView具有此方法的内部。

之后,您可以从视图中提取图像,并SKNode使用它创建一个。

于 2014-05-29T11:59:01.743 回答