2016-12-13 46 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

相關問題