1

私は子供としてボールに追加しようとしてSKEmitterNodeいます.SKSpriteNodeしかし同時に、私はrotating私のボールノードでもあります. しかし問題は、ボール ノードの回転によってエミッタ ノードが回転することです (エミッタ ノードはボール ノードの子であるため)。エミッタ ノードを回転させずに、ボール ノードを回転させるためにできることはありますか?

ボール ノードを次のように追加しました。

SKSpriteNode * ball = [SKSpriteNode spriteNodeWithImageNamed:imageName];
ball.name=name;
ball.size=size;
ball.anchorPoint=CGPointMake(0, 0);

[self addChild:ball];

そして、エミッタノードを次のように追加しました:

 SKEmitterNode *burstEmitter =
 [NSKeyedUnarchiver unarchiveObjectWithFile:_emitterNodePath];
 [ball addChild:burstEmitter];

ボールが壁にぶつかると、ボールを回転させます。

-(void)didBeginContact:(SKPhysicsContact *)contact
{

  SKSpriteNode * firstNode = (SKSpriteNode*)contact.bodyA.node;
  SKSpriteNode *  secondNode = (SKSpriteNode *)contact.bodyB.node;
  if (firstNode.physicsBody .categoryBitMask == wallHitCategory ||  secondNode.physicsBody.categoryBitMask == wallHitCategory) {

        NSLog(@"first sound and then rotate ball");
        [self runAction:[SKAction playSoundFileNamed:@"basketBall bounce.WAV" waitForCompletion:NO]];
        secondNode.anchorPoint=CGPointMake(0.5, 0.5);
            [secondNode runAction:[SKAction rotateByAngle:degToRad(180.0f) duration:3.0]];

    }
}

親ノードを回転できますが、子ノードは回転できませんか?

4

2 に答える 2