0
私はからSKShapeNode
を引き出してSKSpriteNode
に書き出したいと思っています。 SKSpriteNode
にはすでに変換があり、自動的にSKShapeNode
に変換されますが、これは起こりたくありません。追加した後にシェイプノードがジャンプする方法のスクリーンショットを追加しました。私は、子としてシェイプノードを追加し、ノードにいくつかの逆の変換を適用するコードを追加しました(場合によってはうまく動作しますが、たとえば、ロボットをスケールしたり、移動したり回転させたり、 。SKSpriteNodeの逆の変換を見つけよう
func addMaskPath(_ path: CGPath) {
let drawing = MaskLayer(withPath: path)
drawing.zRotation = -zRotation
drawing.xScale = drawing.xScale/xScale
drawing.yScale = drawing.yScale/yScale
drawing.position.x = (drawing.position.x - position.x)/xScale
drawing.position.y = (drawing.position.y - position.y)/yScale
drawing.position.y = drawing.position.y*cos(zRotation) - drawing.position.x*sin(zRotation)
drawing.position.x = -drawing.position.y*sin(zRotation) + drawing.position.x*cos(zRotation)
cropMask?.eraserMask?.addChild(drawing)
}
MaskLayerはSKShapeNodeです。どのようにして私のSKSpriteNodeの変換を簡単に見つけ、それを私のSKShapeNodeに逆の方法で適用すると、私の描画は視覚的に全く同じになりますか?