【问题标题】:Audio Continues After repeatActionForever Removed删除 repeatActionForever 后音频继续
【发布时间】:2014-04-18 03:41:54
【问题描述】:

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

【问题讨论】:

  • 尝试使用[gameLoader.actionCryingAudio copy]
  • 啊……谢谢。我试试看。
  • UGGGGHH...僵尸一直哭着复制。
  • 你能发布 gameLoader.actionCryingAudio 代码吗?它可能相关。
  • 当然...我已经更新了主题。

标签: ios objective-c sprite-kit skaction


【解决方案1】:

您可以尝试以下方法:

-(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

【讨论】:

  • 谢谢。但是我为什么要把一个现有的方法一分为三呢?
  • 单独的方法只会增加更好的设计。干得好。我减少了方法的数量。
  • 现在音频部分被分离并在完成时调用自身。因此,删除该操作应该有效。这还有一个额外的好处,就是哭声之间的等待时间可变。
  • 1.将一个方法分成两三个并不能解决问题。 => F 使用 runAction 完成并不能解决问题。 => D 3. 请阅读题目的标题。 4. 请不要打扰我。
  • 哇,哇,冷静点。我猜你还没有真正尝试过实现这一点。重点不是将代码分离为方法,而是实现repeatActionForever 的另一种方式。我猜你对抽象没有任何欣赏。
【解决方案2】:

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

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

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

【讨论】:

  • 由于您的代码目前没有在您的实例化对象上调用您的删除,因为它只存在于该方法中。您必须将您的变量 *zombie 分配给实例变量,或者您正在调用 stop 方法来调用甚至没有实例化的东西。
  • 恐怕我的声明从一开始就存在。
  • 我可以看到另一个问题,如果您已将局部变量或属性声明为 SKSpriteNode *zombie;在您的班级中,并在该对象上调用停止,而不是在您的方法中调用磨损的对象。另一方面,如果你有一个属性/变量名 SKSNode *_zombie;那么你应该得到一个警告,说隐式声明,你隐藏了一个实例变量或类似的东西。我不记得 xcode 说了什么,但大意是这样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-12
相关资源
最近更新 更多