4
Swift 3とSpritekitを使用してアプリケーションを開発する際に問題が発生しました。私は衝突を検出するために正方形を構成する4つの別々の三角形を作った。これらの三角形を1つの単位として回転させると、回転中に重なり合って正方形の形を保持せず(互いに重なり合っています)、回転が完了すると正常に戻ります。ユニットとして回転するときにスプライトノードが重複する
これは私が回転するために使用されるコードです:
以下override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch in touches{
let location = touch.location(in: self)
if location.x < 0 {
blueTriLeft.run(SKAction.rotate(byAngle: CGFloat(M_PI_2), duration: 0.2))
redTriLeft.run(SKAction.rotate(byAngle: CGFloat(M_PI_2), duration: 0.2))
yellowTriLeft.run(SKAction.rotate(byAngle: CGFloat(M_PI_2), duration: 0.2))
greenTriLeft.run(SKAction.rotate(byAngle: CGFloat(M_PI_2), duration: 0.2))
} else if location.x > 0 {
blueTriRight.run(SKAction.rotate(byAngle: CGFloat(-M_PI_2), duration: 0.2))
redTriRight.run(SKAction.rotate(byAngle: CGFloat(-M_PI_2), duration: 0.2))
yellowTriRight.run(SKAction.rotate(byAngle: CGFloat(-M_PI_2), duration: 0.2))
greenTriRight.run(SKAction.rotate(byAngle: CGFloat(-M_PI_2), duration: 0.2))
}
}
}
は私を気軽にしてください4つの別々の三角形
で構成された私の正方形の写真ですあなたが見る必要がある他のコードは、任意の入力が役立ちます。また、私は重複した問題を行動で得ることができませんでしたので、事前に申し訳ありませんが、私はそれを得るために最善を尽くします。
は、私はタッチで宣言しなければならない関数やクラスでを開始しました:あなたのケースでは、それを行うための最も簡単な方法は、同じ親ノードに追加して、親を回転させることですか? –
blueTriLeft = self.childNode(withName: "blueTriLeft")as! SKSpriteNode –
^^^^^^これは上記の解決策に打ち勝つでしょう –