Я пытаюсь добавить 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]];
}
}
Можно ли повернуть родительский узел, но не его дочерний узел?