我不再追求这个话题,不是因为我找到了解决方案。不,我没有。
答案 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