当前位置: 首页 > 面试题库 >

向SKSpriteNode添加发光效果

吉嘉珍
2023-03-14
问题内容

我在黑屏上有一个移动的黑色图像,以使其更易于查看,我想在图像中添加白色光晕。这是我的运动图像代码:

   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)
        effectNode.addChild(SKSpriteNode(texture: texture))
        effectNode.filter = CIFilter(name: "CIGaussianBlur", withInputParameters: ["inputRadius":radius])
    }
}

现在给出一个SKSpriteNode

let sun = SKSpriteNode(imageNamed: "sun")

所有你需要做的

sun.addGlow()


 类似资料:
  • 应用光照效果滤镜 “光照效果”滤镜使您可以在 RGB 图像上产生无数种光照效果。也可以使用灰度文件的纹理(称为凹凸图)产生类似 3D 的效果,并存储您自己的样式以在其它图像中使用。 注意:光照效果滤镜仅适用于 Photoshop 中的 8 位 RGB 图像。您必须有受支持的显卡才能使用光效。有关详细信息,请参阅此常见问题解答。 选取“滤镜”>“渲染”>“光照效果”。 从左上角的“预设”菜单中选取一

  • 我正在尝试将涟漪效果添加到RecyclerView的项目中。我上网看了一下,但找不到我需要的东西。我想这应该是一个自定义效果。我尝试了rodroid:background属性到RecyclerView本身,并将其设置为“?android:selectableitembackground”,但它不起作用。: 这是我试图添加效果的RecyclerView:

  • 添加/删除光晕是一组API,可以控制是否在3D地球周围显示 光晕 。 当使用addHalo() API添加光晕时,可以指定光晕颜色。默认设置下光晕是启用的。 controller.addHalo(0xFF0000); controller.removeHalo();

  • 使用本主题了解如何向 Dreamweaver 网页添加音频效果和受支持的音频文件格式。 可以向网页添加声音。有多种不同类型的声音文件和格式,例如 .wav、.midi 和 .mp3。在确定采用哪种格式和方法添加声音前,需要考虑以下一些因素:添加声音的目的、页面访问者、文件大小、声音品质和不同浏览器的差异。 注意:浏览器不同,处理声音文件的方式也会有很大差异和不一致的地方。您最好将声音文件添加到 S

  • 我在JavaFX中创建了一个自定义进度条。现在我想在progressBar中添加光晕效果。 为此,我创建了一个具有高斯模糊效果的椭圆,并将椭圆的中心线添加到时间轴中,以便在进度栏中设置辉光效果的动画。 这是创建椭圆的代码 这是制作动画的方法 虽然我已经将width属性与custom bar width属性绑定在一起,这样椭圆中心不会超过进度条的当前进度,并且应该反向。但当动画开始时,它不会发生,它

  • 添加平行光是直接定义光线照射物体的方向,点光源的光线是发散的,无法直接定义它的光线方向,不过只要定义好点光源的位置坐标,然后与某个顶点的位置坐标进行减法运算,计算结果就是光源射到该顶点的方向。 这很好理解,在三维空间中两个点确定一条直线,几何体顶点代表一个点,点光源的位置代表一个点,直线所在的方向就是光线的方向,在三维笛卡尔坐标系中,把两个顶点的xyz三个分量相减就可以得到一个表示直线方向的向量,