スプライトノードのアウトラインのみのための物理ノードを作成しようとしています。このため、私はedgeLoopFromRectを使用しようとしました。しかし、これを試してみると、物理ボディがスプライトノードの位置と一致しません。たとえば、スプライトノードは画面の中央にあり、物理ボディは画面の上隅にあります(写真を参照 - フィジックスボディの輪郭はコーナーのみを表示し、一部は画面外です)。私はこれを使って、ゲームエリアの概要を作成します。ゲームエリアの概要は、オブジェクトがゲームオーバーのために接触するための境界線として機能します。Swift、SpriteKit:edgeLoopFromRectを使用しているときにSpriteNodeに物理ボディの位置が正しくない
ここに私のコードです:
//Physic Body Outline Test
let screenS = SKSpriteNode(imageNamed: "TestImage")
screenS.size = CGSize(width: 100, height: 100)
screenS.position = CGPoint(x: self.size.width/2, y: self.size.height/2)
screenS.physicsBody = SKPhysicsBody(edgeLoopFrom: screenS.frame)
screenS.physicsBody!.affectedByGravity = false
self.addChild(screenS)
はなぜ、これまでオフの位置ですか?私は間違って何をしていますか?これは、ゲームエリアの物理的な輪郭を設定するための正しいアプローチでもありますか?
ありがとうございます! :D
スプライトとフィジックスを表示するスクリーンショットを投稿できますか? –
"これを使用してオブジェクトの境界線として動作するゲーム領域のアウトラインを作成します。" - スプライトの輪郭をスプライトの境界線としたいのですか? Sprtesは通常、ボリュームベースの物理学の本体を持っています。エッジベースのボディは境界などに使用されますが、通常、シーンのフレームを使用してスプライトが画面外に出るのを止めます。 –