J'ai un jeu de sprite avec différentes scènes: le menu principal ("MainMenuScene") et la scène de jeu ("MyScene"). Pendant que l'utilisateur joue au jeu, j'ai une musique de fond sans fin. Mais quand le joueur veut arrêter le jeu et revenir au menu principal, la musique de fond continue à jouer. Que dois-je faire pour l'arrêter? J'ai essayé [self removeAllActions]
mais cela n'a pas fonctionné.Arrêt d'une SKAction
myScene:
@implementation MyScene
{
SKAction *_backgroundMusic;
}
-(id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
self.backgroundColor = [SKColor colorWithRed:0.15 green:0.5 blue:0.3 alpha:1.0];
}
//Here I make the endless background music
_backgroundMusic = [SKAction playSoundFileNamed:@"Background 2.m4a" waitForCompletion:YES];
SKAction * backgroundMusicRepeat = [SKAction repeatActionForever:_backgroundMusic];
[self runAction:backgroundMusicRepeat];
return self;
}
- (void)selectNodeForTouch:(CGPoint)touchLocation
{
SKSpriteNode *touchedNode = (SKSpriteNode *)[self nodeAtPoint:touchLocation];
if ([_MainMenuButton isEqual:touchedNode]) {
SKScene *mainMenuScene = [[MainMenuScene alloc]initWithSize:self.size];
[self.view presentScene:mainMenuScene];
//Here is where the music should stop, when the player presses the 'return to main menu' button
}
}
Possible Dupliquer: http://stackoverflow.com/questions/19754871/how-to-pause-the-sound-when-use-spritekit – 68cherries
Vous ne devriez vraiment pas utiliser des ivars ici, mais une propriété forte. Pouvez-vous vérifier que l'action n'est pas nulle avant de l'enlever. Je pense que ça pourrait être nul. Juste vérifier si lol! – Fogmeister
Peu importe ce que vous faites, l'audio initié par SKAction ne s'arrêtera pas. –