- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在 Swift 中使用 SpriteKit,我的 GameScene(一个 SKScene)中有这段代码:
//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 中(稍后在代码中我将一些带有纹理/图像的 SKSpriteNode 添加到 itemsLayer 中)。
在 iOS8 上,它完美运行:我可以看到我所有的项目都是灰色的。
但是在 iOS7 上,SKSpriteNodes(我在 itemsLayer 上的项目)没有显示(就像隐藏一样)。
根据文档和 filterNamesInCategory("CICategoryColorEffect")
,CIPhotoEffectNoir 确实存在于 iOS7 中。
编辑 :当我评论过滤器行时,我的 itemsLayer 仍然隐藏。当我将 let grayNode
转换为 SKNode
时,它会返回(但当然没有应用任何效果)。问题似乎出在 grayNode 是 SKEffectNode
最佳答案
经过几个小时的调试,我意识到 iOS7 不会像 iOS8 那样渲染 SKEffectNode
。
在 iOS7 中,将 SKEffectNode 添加到一堆 SKSpriteNode
层将不会自动将其放在最前面的层(SKSpriteNode 就是这种情况)。
所以我只需要添加一行:
grayNode.zPosition = 10 //Or any number > 1
关于ios - 在 iOS7 上将 CIFilter 应用于 SKEffectNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27575357/
所以我的游戏中有一个暂停按钮,当您按下它时,场景会暂停,除了一个 SKNode(暂停菜单)之外的所有内容都会变得模糊。我通过创建一个具有过滤器的 SKEffectNode 并向其添加除暂停菜单以外的所
SKEffectionNodes 有一个 shouldRasterise “开关”,可以将它们烘焙到位图中,并且在受效果影响的底层节点发生更改之前不会更新它们。 但是我找不到从这个光栅化“图像”创建
我正在尝试调整一些效果,但我需要使用 SKEffectNode(),所以我编写了以下代码: let rocketPath = NSBundle.mainBundle().pathForResource
如果选择了一个节点,我想显示一个效果节点。如果没有,我想关闭/删除该效果。 (我将一个节点设置为在 touchesBegan 中选中。) 我使用下面的代码。打开和关闭效果节点让我很困惑,因为我将主节点
所以在我的项目中,我有一个 SKEffectNode,我用它在我的一些 spriteNode 周围提供发光效果。我使用 spriteNode (blurNode) 获取障碍物的颜色,然后将其提供给 e
我试图在我的程序中模糊一个 SKShapenode。但是,我希望 shapenode 逐渐模糊,持续时间约为 1 秒。我该如何实现?当前的代码会立即模糊它。 func generateAnimatio
我正在尝试子类化 CIFilter 以便在 SpriteKit 游戏中使用,如 iOS Games by Tutorials 一书中所述。我创建了继承自 CIFilter 的子类,它有一个 (CIIm
我正在尝试创建一个 SKEffectNode,它将在黑色背景上变成透明的任何绿色像素。出于测试目的,当我弄清楚这些东西时,我想确保以下代码不会在 SKEffectNode 的子树中变成透明的。下面的代
是否有更好的方法来创建模糊效果?似乎我目前的做法会产生 FPS 问题,尤其是在旧手机上。似乎 blurAmount 越高,FPS 越低。混合模式可能是这里的原因吗? if effect
我不确定这是一个错误还是我哪里出错了: 我有一个 A 类,它是 SKScene 的子类,还有一个 B 类,它是 SKEffectnode 的子类。然后我将 B 类添加为 A 类的子类。B 类有一个 b
我有一个 SKSpriteNode,我想在它的边缘周围发出蓝色光以突出显示。我猜我需要让我的 Sprite 成为 SKEffectNode 的 child ,然后创建/应用某种过滤器。 更新:我已经用
我有一个 SKEffectNode,其中包含一个节点,该节点会随时间动态更改其子节点(经常删除子节点并动态添加子节点)。我不断在 Fabric 上获取此崩溃日志(仅发生在 iOS10 上),但我无法在
我有一个 SKVideoNode 作为 SKEffectNode 的子节点,这使我能够使用 1 行 x 1 列的 SKWarpGeometryGrid 来倾斜视频。 当您在每个象限中拖动手指时,在 t
我正在尝试模糊多个 SKNode 对象。为此,我将父 SKEffectNode 的 CIFilter 设置为 @"CIGaussianBlur"。像这样: - (SKEffectNode *)crea
在 Swift 中使用 SpriteKit,我的 GameScene(一个 SKScene)中有这段代码: //Init function let self.itemsLayer = SKNode()
我正在尝试将 SKLabelNode 扭曲为 SKEffectNode 的子节点(文档说您可以这样做),但它会在应用扭曲之前颠倒标签节点。这可能是一个错误,但在我提交之前,我想我会在这里问... 这是
我正在尝试使用以下代码片段创建模糊效果: let glowEffectNode = SKEffectNode() glowEffectNode.shouldRasterize = true
我是一名优秀的程序员,十分优秀!