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/40362204/

相关文章:

ios - #selector(Aclass.method) 和#selector(self.method) 的区别

swift - 从右向左连续,无需推送或呈现 ViewController

ios - 可选绑定(bind)与尝试?并作为?仍然产生可选类型

xcode - 如何在 Swift 中删除 SKShapeNode

ios - 使用 SpriteKit 在随机位置复制 Sprite

iphone - 波纹效果动画

ios - Amazon S3 阻止从 URL 访问文件

ios - Sprite Kit - 检测接触

ios - 使用 Xamarin.Forms 更新 ListView 文本绑定(bind)会导致 iOS 上闪烁

ios - 如何查看 Apple Watch 静音状态?