问题
Does anyone know how to transform (rotate,scale,skew) SpriteKit nodes using transformation matrices. couldn't find any support for this in the Spritekit API.
回答1:
As mentioned by Fogmeister, you can use an SKEffectNode with a CIFilter. The following works on iOS:
// Label
let label = SKLabelNode(text: "Hello world")
// Transform
let transform = CGAffineTransformMake(1, 0.5, 0, 1, 0, 0)
// CIFilter
let transformFilter = CIFilter(name: "CIAffineTransform")!
let val = NSValue(CGAffineTransform: transform)
transformFilter.setValue(val, forKey: "inputTransform")
// Effect node
let transformNode = SKEffectNode()
transformNode.filter = transformFilter
// Add label as child on effect node
transformNode.addChild(label)
scene.addChild(transformNode)
See more on affine transform in Apple's documentation.
来源:https://stackoverflow.com/questions/32742403/spritekit-missing-linear-transformation-matrices