2015-10-29 41 views
0

我想按照數組順序播放聲音。而如果第一聲音完成第二應該發揮,等等...雖然waitForCompletion = YES,但聲音一次都播放完畢! - spritekit

下面你可以看到我的包裹中的聲音在子類中的數組:

@implementation Level 
    { 
     SKAction *_s1; 
     SKAction *_s2; 
     SKAction *_s3; 
     SKAction *_s4; 
    } 

    - (instancetype)init 
    { 
     self = [super init]; 
     if (self) { 
      _s1 = [SKAction playSoundFileNamed:@"SoundOne.mp3" waitForCompletion:YES]; 
      _s2 = [SKAction playSoundFileNamed:@"SoundTwo.mp3" waitForCompletion:YES]; 
      _s3 = [SKAction playSoundFileNamed:@"SoundThree.mp3" waitForCompletion:YES]; 
      _s4 = [SKAction playSoundFileNamed:@"SoundFour.mp3" waitForCompletion:YES]; 

      _oneArray = @[_s1, _s1, _s2, _s2, _s3, _s4]; 


     } 
     return self; 
    } 

然後,我通過數組傳遞有主音的聲音。如圖所示:

@implementation GameScene 
{ 
    Level *_level; 
    NSArray *_levelOne; 
} 

-(void)didMoveToView:(SKView *)view { 
    // setup level class 
    _level = [[Level alloc] init]; 

    _levelOne = _level.oneArray; 
    SKAction *one = [SKAction sequence:@[_levelOne]]; 
    [self runAction:one]; 

所有幫助表示讚賞。

回答

0

這將播放所有由1

[self runAction:[SKAction sequence:@[ 
            [SKAction playSoundFileNamed:@"SoundOne.mp3" waitForCompletion:true], 
            [SKAction playSoundFileNamed:@"SoundOne.mp3" waitForCompletion:true], 
            [SKAction playSoundFileNamed:@"SoundTwo.mp3" waitForCompletion:true], 
            [SKAction playSoundFileNamed:@"SoundTwo.mp3" waitForCompletion:true], 
            [SKAction playSoundFileNamed:@"SoundThree.mp3" waitForCompletion:true], 
            [SKAction playSoundFileNamed:@"SoundFour.mp3" waitForCompletion:true], 
            ]]]; 
響起1