0

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

4

2 回答 2

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"];
}

当然,这只有在您有一个可以调用它的实例变量时才可用。

于 2014-03-13T12:13:51.293 回答
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

于 2014-03-13T12:36:38.757 回答