添加框阴影错误 - 无法点击我的按钮 - SpriteKit

Posted

技术标签:

【中文标题】添加框阴影错误 - 无法点击我的按钮 - SpriteKit【英文标题】:Adding a box shadow error - Cant tap on my button - SpriteKit 【发布时间】:2018-08-11 19:25:33 【问题描述】:

我正在尝试制作一个带有漂亮柔光箱阴影的按钮,使其看起来有点 3d。

我有一个导入的普通按钮和SKSpriteNode 上的扩展名

当我单击按钮时,它会转到我的下一个场景 (GameScene)。虽然,当我应用这个“发光”时,它会显示出来,尽管现在无法再按下按钮。

let playBtn = SKSpriteNode(imageNamed: "play-btn")
        playBtn.name = "play-btn"
        playBtn.addGlow()
        playBtn.position = CGPoint(x: frame.midX, y: frame.midY + 70)

        addChild(playBtn)

extension SKSpriteNode 

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

【问题讨论】:

【参考方案1】:

效果可能位于按钮顶部,阻止您访问它。尝试设置 zPosition(对象的分层)

let playBtn = SKSpriteNode(imageNamed: "play-btn")
playBtn.name = "play-btn"
playBtn.addGlow()
playBtn.position = CGPoint(x: frame.midX, y: frame.midY + 70)
playBtn.zPosition = 1
addChild(playBtn)

extension SKSpriteNode 

    func addGlow(radius: Float = 10 ) 
        let effectNode = SKEffectNode()
        effectNode.shouldRasterize = true
        effectNode.zPosition = -1
        addChild(effectNode)
        effectNode.addChild(SKSpriteNode(texture: texture))
        effectNode.filter = CIFilter(name: "CIGaussianBlur", withInputParameters: ["inputRadius":radius])
     

【讨论】:

以上是关于添加框阴影错误 - 无法点击我的按钮 - SpriteKit的主要内容,如果未能解决你的问题,请参考以下文章

Swift - 添加UIView后无法点击按钮

点击按钮没有弹出modal弹窗,去刷新页面的解决方法

向启用文本框 (C#) 的 Web 部件添加按钮,出现错误:无法将类型“bool”隐式转换为“字符串”

Android L FAB 按钮阴影

Android L FAB 按钮阴影

ppt中如何对文字设置阴影效果