レベルジェネレータでSKSpriteNodeを作成しました。SWIFTのSKSpriteNodeからCGPathを作成する方法
私はCGPathにを使用して、正確に同じ形状を作成する必要があります。
self.firstSquare = childNodeWithName("square") as! SKSpriteNode
var transform = CGAffineTransformMakeRotation(self.firstSquare.zRotation)
let rect = CGRect(origin: self.firstSquare.position, size: self.firstSquare.size)
let firstSquareCGPath:CGPath=CGPathCreateWithRect(rect, &transform)
print(self.firstSquare.position)
=> firstSquare位置(52.8359451293945、-52.9375076293945)
私が好きな私のCGPathには作成されているかどうかを確認するために、私は私のCGPathにしてSKShapeNodeを作成しました:
let shape:SKShapeNode=SKShapeNode(path:path)
shape.fillColor = self.getRandomColor()
addChild(shape)
print(shape.position)
=>形状の位置(52.8359451293945、-52.9375076293945)
結果は私が期待したものではありません。
だから私のCGPathには間違っている場合、私は知らない、または私は最初のスプライトプロパティを失うことSKShapeNodeでそれを変換するときにだ場合。
私はそれをする必要がある理由を理解するには、EDIT this stack
1,2
をお読みください私が追加:
shape.position = self.firstSquare.position
そして、私が得た:
EDIT 3:
私は私のfirstSquareのアンカーポイントは、通常、私は.SKSファイルを使用していない(0.5、0.5)今
私の編集を参照してください、動作していないようです。 – cmii
よく見る編集セクション –
Ok、アンカーポイントを(0.5、0.5)に設定して説明を更新しました。結果はまだ私が必要なものではありません。 – cmii