ios - 为 SKSpriteNode 添加发光效果

标签 ios swift sprite-kit cifilter skeffectnode

我在黑暗的屏幕上有一个移动的黑色图像,为了更容易看到我想在图像中添加白光。这是我的动态图像代码:

   Ghost = SKSpriteNode(imageNamed: "Ghost1")
Ghost.size = CGSize(width: 50, height: 50)
Ghost.position = CGPoint(x: self.frame.width / 2 - Ghost.frame.width, y: self.frame.height / 2)

Ghost.physicsBody = SKPhysicsBody(circleOfRadius: Ghost.frame.height / 1.4)
Ghost.physicsBody?.categoryBitMask = PhysicsCatagory.Ghost
Ghost.physicsBody?.collisionBitMask = PhysicsCatagory.Ground | PhysicsCatagory.Wall
Ghost.physicsBody?.contactTestBitMask = PhysicsCatagory.Ground | PhysicsCatagory.Wall | PhysicsCatagory.Score
Ghost.physicsBody?.affectedByGravity = false
Ghost.physicsBody?.isDynamic = true
Ghost.zPosition = 2

self.addChild(Ghost)

我不确定如何或使用什么来添加光晕,如果您需要更多信息,请询问。

最佳答案

我创建这个扩展是为了给 SKSpriteNode 添加发光效果

只需将其添加到您的项目中

extension SKSpriteNode {

    func addGlow(radius: Float = 30) {
        let effectNode = SKEffectNode()
        effectNode.shouldRasterize = true
        addChild(effectNode)
        let effect = SKSpriteNode(texture: texture)
        effect.color = self.color
        effect.colorBlendFactor = 1
        effectNode.addChild(effect)
        effectNode.filter = CIFilter(name: "CIGaussianBlur", parameters: ["inputRadius":radius])
    }
}

现在给定一个 SKSpriteNode

let sun = SKSpriteNode(imageNamed: "sun")

一切尽在掌握

sun.addGlow()

enter image description here

关于ios - 为 SKSpriteNode 添加发光效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40565227/

相关文章:

ios - 这是什么意思? "alienPosition = alien.position"

ios - @3x 图像应该比原始 iPhone 图像大 3 倍还是 4 倍?

ios - 为什么我的 ios/osx 框架忽略 GCC_PREFIX_HEADER?

ios - 如何修复 Swift 3 错误 ‘cannot use mutating member on immutable value: ‘loadedPost’ 只获取属性?

objective-c - 对于核心数据,我应该使用一个实体还是分成更小的实体?

ios - UIKit 和 SpriteKit 添加 UIBezierPath 的不同结果

ios - 粒子系统从某些角度看是黑色的

ios - UITextInput 仅在 iOS 9 中返回 nil 位置

ios - 纯代码构建集合但不执行 UICollectionViewDelegateFlowLayout

ios - 未调用 SpriteKit didBeginContact 函数