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