首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CIFilter在SKEffectNode上的iOS7应用

CIFilter在SKEffectNode上的iOS7应用
EN

Stack Overflow用户
提问于 2014-12-19 23:31:51
回答 1查看 667关注 0票数 2

在Swift中使用SpriteKit,我的GameScene (一个SKScene)中有以下代码:

代码语言:javascript
复制
//Init function
let self.itemsLayer = SKNode()

let grayNode = SKEffectNode()
let grayFilter = CIFilter(name: "CIPhotoEffectNoir")
grayFilter.setDefaults()
grayNode.filter = grayFilter
grayNode.addChild(self.itemsLayer)

self.addChild(grayNode)

它应该以灰色将显示的项呈现到itemsLayer中(在代码的后面,我在itemsLayer中添加了一些带有纹理/图像的SKSpriteNode )。

在iOS8上,它工作得很好:我可以看到我所有的项目都是灰色的。

但是在iOS7上,没有显示SKSpriteNodes (我在itemsLayer上的项目)(好像隐藏了)。

根据文档和CIPhotoEffectNoir,iOS7确实存在于filterNamesInCategory("CICategoryColorEffect")中。

编辑:当我评论过滤器行时,我的itemsLayer仍然是隐藏的。当我将let grayNode转换为SKNode时,它会返回工作(当然不会应用任何效果)。问题似乎来自于grayNode是一个SKEffectNode

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-21 00:54:57

经过几个小时的调试,我意识到iOS7并不像iOS8那样以同样的方式呈现SKEffectNode

在iOS7中,将一个SKEffectNode添加到一组SKSpriteNode层将而不是自动地放到最前面的层(SKSpriteNode就是这种情况)。

所以我只需要加一行:

代码语言:javascript
复制
grayNode.zPosition = 10 //Or any number > 1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27575357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档