2017-04-16 27 views

回答

1

我解決這個實現:

斯威夫特3

extension SKSpriteNode { 

    func addSkew(value: CGFloat = -1){ 

     var effectNode = SKEffectNode() 
     effectNode.shouldRasterize = true 
     effectNode.shouldEnableEffects = true 
     effectNode.addChild(SKSpriteNode(texture: texture)) 
     effectNode.zPosition = 1 
     let transform  = CGAffineTransform(a: 1 , b: 0, 
               c: value , d: 1, 
               tx: 0 , ty: 0) 
     let transformFilter = CIFilter(name: "CIAffineTransform")! 
     transformFilter.setValue(transform, forKey: "inputTransform") 
     effectNode.filter = transformFilter 
     addChild(effectNode) 
     texture = nil 

    } 

} 
1

的的可用SKAction是這裏的列表:https://developer.apple.com/reference/spritekit/skaction

有沒有做的正是你的描述。相反,您可以從Photoshop等照片編輯工具導出多個精靈圖像,並使用動畫動作,如class func animate(with: [SKTexture], timePerFrame: TimeInterval)

這是一個更多的工作,但應達到預期的效果。

+0

謝謝,但我需要變換的圖像,不僅規模/移動/α,即時尋找CGAffineTransform的解決方案。 – Maetschl

+1

如果我按照我的回答描述添加一系列自定義紋理,則可以實現扭曲效果。它看起來像你可以在'SKEffectNode'上使用'CGAffineTransform':http://stackoverflow.com/a/32952011/6658553 – nathan