2

SKShapeNode( )を作成する次のコードがありますself.tiles

CGMutablePathRef path = CGPathCreateMutable();
.... //Some stuff that creates a path

self.tiles = [SKShapeNode node];
[self addChild:self.tiles];

self.tiles.path = path;
self.tiles.physicsBody = [SKPhysicsBody bodyWithEdgeChainFromPath:path];

しかし、作成された物理ボディは、画面上で作成された形状と一致していないようです.SKShapeNodeは、画面上で(視覚的に)正確に必要な場所です。

物理体が実際にどこにあるのかわかりません。

SKShapeNodeとを揃えるにはどうすればよいSKPhysicsBodyですか?

4

1 に答える 1

3

これは、理解に苦しむ可能性のある他の人向けです。

スプライトのアンカー ポイントは、そのスプライトの子のローカル座標系が始まる場所です。したがって、アンカー ポイントがスプライトの中心である場合、子ノードの (0,0) は親スプライトの中心に対応します。

a の場合、通常は(四角形の左下隅として)CGRectの原点を指定してから、寸法を指定します。CGRect

を使用して楕円または長方形をSKShapeNode作成している可能性があるため、長方形の中心がスプライトの中心と一致するようにオフセットする必要があります。これにより、形状と物理ボディが期待される位置に配置されます。SKPhysicsBodyCGRect

于 2014-03-17T09:33:26.440 に答える