私は子供としてボールに追加しようとして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]];
}
}
親ノードを回転できますが、子ノードは回転できませんか?