Подтвердить что ты не робот

Добавить светящийся эффект в SKSpriteNode

У меня есть движущееся черное изображение на темном экране, чтобы было легче видеть, что я хотел бы добавить белое свечение к изображению. Это мой код для движущегося изображения:

   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)

Я не уверен, как и что использовать для добавления в свечение, если вам нужна дополнительная информация, пожалуйста, спросите.

4b9b3361

Ответ 1

Я создал это расширение, чтобы добавить эффект свечения к SKSpriteNode

Просто добавьте это в свой проект

extension SKSpriteNode {

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

Теперь данный SKSpriteNode

let sun = SKSpriteNode(imageNamed: "sun")

все, что вам нужно сделать

sun.addGlow()

введите описание изображения здесь