所以在我的项目中,我有一个SKEffectNode,我用它来提供一些spriteNodes的发光效果。我使用spriteNode (blurNode)获取障碍物的颜色,然后将其交给effectNode。这个很好用。
let blurNode = SKSpriteNode(imageNamed: "neonLine.png")
blurNode.color = obstacle.color
blurNode.colorBlendFactor = 1.0
blurNode.size = CGSize(width: obstacle.size.width + 30, height: obstacle.size.height + 30)
let effectNode = SKEffectNode()
effectNode.shouldRasterize = true
obstacle.addChild(effectNode)
effectNode.addChild(blurNode)
effectNode.filter = CIFilter(name: "CIGaussianBlur", withInputParameters: ["inputRadius":30])
effectNode.alpha = 1.0我的问题发生在这里。
let colorFadegreen = SKAction.sequence([SKAction.colorize(with: UIColor(red: 0, green: 0.6471, blue: 0.3569, alpha: 1.0), colorBlendFactor: 1.0, duration: 3)])
obstacle.removeAllActions()
obstacle.run(colorFadegreen)
blurNode.removeAllActions()
blurNode.run(colorFadegreen)我想做的是让障碍物周围的“光辉”与障碍物一起变色。这正是发生的情况;然而,当我这样做时,我的帧速率下降到30 down。
那么,我的问题是,有没有人知道如何提高这项任务的性能?或者还有别的方法可以让我这么做。
我想到的想法之一是手动模糊photoshop中的"neonLine.png“,然后将其添加到像let blurNode = SKSpriteNode(imageNamed: "bluredNeonLine.png")这样的模糊节点中。唯一的问题是,我永远也不可能把模糊的东西弄清楚,它总是看不见的。
任何帮助都将不胜感激。谢谢!
编辑:
以下是我的项目中的一些发光照片:

下面是颜色变化的辉光和线条:

发布于 2016-11-15 16:42:29
有关表演的问题有三个答案:
在任何情况下,您最好呈现一个白色的辉光,它会随您的喜好褪色,然后对其应用颜色混合更改,因为SpriteKit已经内置了这个功能,并且在我做过的几个测试中,它是合理的表现。这就是所谓的着色:
您可以更改和动画混合数量:https://developer.apple.com/reference/spritekit/skspritenode/1519780-colorblendfactor
与纹理混合的颜色:https://developer.apple.com/reference/spritekit/skspritenode/1519639-color
https://stackoverflow.com/questions/40613578
复制相似问题