2016-12-13 49 views
2

我想在我的SKSpriteNode拖动屏幕时显示任何效果或动画。如何在SKSpriteNode仅在屏幕上移动时显示阴影或任何发光效果?

我经历了很多网站,但我没有找到相关的答案我的问题。我对SKSpriteNode有一点点知识。

任何人都可以指导我解决这个问题。

谢谢。

+0

您是否尝试过使用SKLightNodes? – Knight0fDragon

+0

看看这个答案:http://stackoverflow.com/a/40362874/6728196。它展示了如何发光效果。那么你可以隐藏它,当不移动或任何你想要的 – Nik

+0

你目前如何创建你的阴影? – Confused

回答

3

使用一个工厂做一个阴影:

import SpriteKit 

class MAKE { 

    private static let view:SKView = SKView() 

    static func makeShadow(from source: SKTexture, rgb: SKColor, a: CGFloat) -> SKSpriteNode { 
     let shadowNode = SKSpriteNode(texture: source) 
      shadowNode.colorBlendFactor = 0.5 // makes the following line more effective 
      shadowNode.color = SKColor.gray // makes for a darker shadow. Off for "glow" shadow 
     let textureSize = source.size() 
     let doubleTextureSize = CGSize(width: textureSize.width * 2, height: textureSize.height * 2) 
     let framer = SKSpriteNode(color: UIColor.clear, size: doubleTextureSize) 
      framer.addChild(shadowNode) 
     let filter = CIFilter(name: "CIGaussianBlur") 
     let blurAmount = 10 
     filter?.setValue(blurAmount, forKey: kCIInputRadiusKey) 
     let effectsNode = SKEffectNode() 
      effectsNode.filter = filter 
      effectsNode.blendMode = .alpha 
      effectsNode.addChild(framer) 
      effectsNode.shouldRasterize = true 
     let tex = view.texture(from: effectsNode) 
     let shadow = SKSpriteNode(texture: tex) 
      shadow.colorBlendFactor = 0.5 
      shadow.color = rgb 
      shadow.alpha = a 
      shadow.zPosition = -1 
    return shadow 
    } 
} 

现在做一个按钮,反正你喜欢,但要确保你已经创建了一个buttonTexture这是完全相同的大小和形状,你的按钮,最好它的一个灰色的演绎。你需要这个送了模糊工厂shadowmaker上面,像这样:

shadowSprite = MAKE.makeShadow(from: buttonTexture, rgb: myColor, a: 0.33) 
     shadowSprite.position = CGPoint(x: self.frame.midX, y: self.frame.midY - 5) 
     addChild(shadowSprite) 

你可以看到如何以及为什么更细节的工厂,在这里: Create \(Use) SKView as \(in a) factory \(static class)

+1

感谢您的回答我想在Xamarin.Mac我认为它的一个迅速代码:( – Mounika

+0

我不知道任何关于C#@Mounika或E.关键的 – Confused

+0

嗯...好的,我会尽力回答你的技术问题 – Mounika

相关问题