继承自 | SKNode:UIResponder:NSObject |
符合 | NSCoding(SKNode)NSCopying(SKNode)NSObject(NSObject) |
框架 | /System/Library/Frameworks/SpriteKit.framework |
可用性 | 可用于iOS 7.0或者更晚的版本 |
声明于 | SKEffectNode.h |
参考指南 | Sprite Kit Progamming Guide |
概览
重要提示:这是一个初步的API或者开发技术文档。虽然已经审阅了本文档的技术准确性,但是它不是最终的版本。本机密信息仅适用于苹果开发者计划的注册会员。苹果提供这些机密信息来帮助你采用这些技术和编程接口。此信息如果有变更,根据本文档实现的软件应使用操作系统软件和最终文档测试。新版本的文档可能会拥有新的API或者技术。 |
一个SKEffectNode实例通过一个核心图像滤镜来渲染输出,它允许你在场景中合并出复杂的效果。
要使用SKEffectNode实例,首先将节点的filter属性指向一个创建好的核心图像滤镜,然后把节点的shouldEnableEffects属性设为YES以使滤镜可用。当滤镜可用的时候,本节点先将其子节点渲染为图像,然后使用滤镜过滤,然后将过滤过的图像混合输出到父节点缓冲区。
属性
blendMode |
blendMode用于将滤镜过滤过得图像输出到父节点缓冲区。
@property (atomic) SKBlendMode blendMode
论述
该属性的默认值为SKBlendModeAlpha,该属性的枚举定义在SKNode类中。
filter |
节点所采用的核心图像滤镜。
@property (atomic, retain) CIFilter *filter
论述
核心图像滤镜必须只有一个输入图像和一个输出图像。该属性的默认值为nil。如果该值为空,将不会发生滤镜效果。但是,它的子节点仍然会被单独渲染后混合输出到父节点缓冲区。
shouldCenterFilter |
一个BOOL值,它决定节点是否自动将滤镜图像设置到中心区域。
@property (atomic, retain) BOOL shouldCenterFilter
论述
如果该属性的值为YES,并且滤镜拥有一个输入中心,节点将自动把滤镜的输入中心设置到节点的原点。默认值为YES。
shouldEnableEffects |
一个BOOL值,用来决定在子节点绘制的时候是否采用滤镜。
@property (atomic) BOOL shouldEnableEffects
论述
如果该属性的值为YES,节点将会采用滤镜来过滤以及混合输出结果。如果该属性的值为NO,节点将会忽视滤镜效果照常绘制子节点。该属性的默认值为NO。
shouldRasterize |
一个BOOL值,用来表示子节点的渲染结果是否采用缓存。
@property (atomic) BOOL shouldRasterize
论述
如果该属性的值为YES,过滤过得图像将会被添加到缓存,以备将来使用。如果该属性的值为NO,图像将会被丢弃,在下一次需要渲染的时候再重新绘制。该属性的默认值为NO。采用缓存会消耗更多的内存以及花费更多地时间。然而,如果子节点很少改变,采用缓存将会提高性能。当采用缓存的时候,对子节点的改变将自动更新下一帧动画的缓存图像。但是,改变滤镜属性的时候不会这样。