将发光效果添加到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) 

我不知道如何或如何使用添加一个发光,如果你需要更多的信息,请问。

我创build了这个扩展来为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() 

在这里输入图像说明