删除了repeatActionForever后音频继续

时间:2014-03-13 12:03:55

标签: ios objective-c sprite-kit skaction

我不再追求这个话题,不是因为我找到了解决方案。不,我没有。

2 个答案:

答案 0 :(得分:0)

我认为您缺少正确删除操作。 首先创建一个变量:

@implementation FooClass{
SKSpriteNode *_zombie;
}

分配您的对象:

-(void)createEnemy:(CGPoint)p :(NSInteger)type {
    _zombie = [SKSpriteNode spriteNodeWithTexture:zombieTexture];
    SKAction *audioSequence = [SKActionsequence:@[waitAudio,gameLoader.actionCryingAudio]];
    [_zombie runAction:[SKAction repeatActionForever:audioSequence] withKey:@"zombieCrying"];
}

通过调用此方法删除声音:

- (void) stopZombieCrying{
[_zombie removeActionForKey:@"zombieCrying"];
}

当然,如果您有一个可以调用它的实例变量,那么这只是可用的。

答案 1 :(得分:0)

您可以尝试以下几点:

-(void)makeZombieCry:(SKSpriteNode*)zombie
{
    SKAction *waitAudio = [SKAction waitForDuration:waitFloat];
    SKAction *audioSequence = [SKAction sequence:@[waitAudio,gameLoader.actionCryingAudio]];
    SKAction *sequence = [SKAction sequence:@[waitAudio, audioSequence]];

    [zombie runAction:sequence completion:^{
        [self makeZombieCry:zombie];
    }];
}

然后在-createEnemy方法中调用-makeZombieCry