0

以下のように UITouch を使用して ShapeNode を描画しています。

線は正しく描画されます。ただし、私の問題は、physicsbody を shapenode に追加することです (SKSpriteNode を衝突させてバウンスさせたい)。しかし、あたかも物理体がシェイプノードに接続されていないかのようです。YMCPhysicsDebugger を使用して、シェイプノードを基準にして物理ボディがどこにあるかを確認しましたが、何も検出されません。

誰もこれに遭遇したことがありますか?ダイナミック シェイプノードに物理ボディを追加するにはどうすればよいですか?

`-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{
    touch = [touches anyObject];
    CGPoint positionInScene = [touch locationInNode:self];

    pathToDraw = CGPathCreateMutable();
    CGPathMoveToPoint(pathToDraw, NULL, positionInScene.x, positionInScene.y);

    selectorLine = [SKShapeNode node];
    selectorLine.path = pathToDraw;
    selectorLine.strokeColor = [SKColor greenColor];
    selectorLine.lineWidth = 10;
    selectorLine.physicsBody=[SKPhysicsBody bodyWithPolygonFromPath:pathToDraw];
    selectorLine.physicsBody.restitution=1.0f;
    selectorLine.physicsBody.dynamic=YES;
    selectorLine.physicsBody.usesPreciseCollisionDetection=YES;
    selectorLine.physicsBody.mass=0.2;
    selectorLine.zPosition=1.5;

    [self addChild:selectorLine];
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{

 touch = [touches anyObject];
 CGPoint positionInScene = [touch locationInNode:self];
 CGPathAddLineToPoint(pathToDraw, NULL, positionInScene.x, positionInScene.y);
 selectorLine.path = pathToDraw;

}

ありがとう、ダグ

4

2 に答える 2

1

SKNodeを親に追加し、物理ボディを追加する前にその位置を設定する必要があることを読んだことを思い出します...

于 2014-03-06T16:30:11.067 に答える