0

SKSpriteNode のphysicsBody のカスタム エッジ パスを作成しています。

CGMutablePathRef edgePath = CGPathCreateMutable();

CGPathMoveToPoint(edgePath, NULL, -100, -70);
CGPathAddLineToPoint(edgePath, NULL, -100, 40);
CGPathAddLineToPoint(edgePath, NULL, -80, -20);
CGPathAddLineToPoint(edgePath, NULL, 30, -20);
CGPathAddLineToPoint(edgePath, NULL, 100, 100);
CGPathAddLineToPoint(edgePath, NULL, 100, -70);
CGPathCloseSubpath(edgePath);

次のコードを使用してphysicsBodyを割り当てようとしました:

sprite.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromPath:edgePath];

sprite.physicsBody = [SKPhysicsBody bodyWithPolygonFromPath:edgePath];

sprite.physicsBody = [SKPhysicsBody bodyWithEdgeChainFromPath:edgePath];

これらのどれも、スプライトが重力の影響を受けることを可能にしません。

ただし、単純なものを使用するとbodyWithCircleOfRadius:、スプライトは重力の影響を受けます。

なぜこれが起こるのか、誰かが光を当てることができますか?

4

1 に答える 1

2

エッジ ループとチェーンは、静的な (不動の) ボディを作成します。それらは重力の影響を受けません。

ポリゴン シェイプのボディは、重力の影響を受ける必要があります。ただし、ポリゴンが反時計回りに曲がり、自己交差しておらず、形状が凸状であることを確認する必要があります。それ以外の場合、結果は予測できません。

于 2013-11-26T13:51:35.497 に答える