2013-11-02 16 views

答えて

15

私のゲームの設定方法では、私はこのようなことをして、うまくいくようです。

はIVARに

SKAction *_ballsHitSound; 

セットを持って、それまでのときの負荷シーンを

_ballsHitSound = [SKAction playSoundFileNamed:@"ballsCollide.mp3" waitForCompletion:NO]; 

その後、音が

[self runAction:_ballsHitSound]; 
+1

ポーズはサウンドの初期読み込みです。基本的には、ゲームのセットアップでこれらのオーディオファイルのロードをすべて実行することは、あらかじめロードして、間違いなく正しい方法です。その一時停止はセットアップ中に存在しますが、一時停止はセットアップ中に管理できます。 – prototypical

+0

SKLabelのフォントを読み込むと、同じ一時停止が発生する可能性があります。したがって、セットアップ中にゲームプレイ中に使用するフォントでもSKLabelsをロードすることをお勧めします。たとえば、ゲームプレイ中にのみ使用されるスコアポップアップ用の特定のフォントがある場合などです。 – prototypical

0

playSoundFileNamedに行く準備ができている:アクションは、再生するために作られています小さなサウンド、ゲームのサウンドエフェクト、バックグラウンドミュージックなどの大きなサウンドファイルのようなものではありません。より大きなサウンドファイルを再生する予定がある場合は、AVAudioPlayerクラスを使用する方が効果的です。これにより、サウンド再生をより詳細に制御できます。

// Load and start background music 
    NSError *error; 
    NSURL * backgroundMusicURL = [[NSBundle mainBundle] URLForResource:@"background-music" withExtension:@"mp3"]; 
    self.backgroundMusicPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:backgroundMusicURL error:&error]; 
    self.backgroundMusicPlayer.numberOfLoops = -1; 
    [self.backgroundMusicPlayer prepareToPlay]; 
    [self.backgroundMusicPlayer play]; 
0

私はあなたが私はバックグラウンドスレッドでそれを再生しようとするので、メインスレッド上で、あなたのサウンドを再生する必要がないことだと思う: は、ここにそれを使用する方法のコードスニペットです。

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void) { 
     // Play it here 
    }); 
関連する問題