シーンのBGMとキャラクターのバックグラウンドミュージックが必要ですが、キャラクターが何らかのアクションを起こすと停止する必要があります。同じ時間でCocos2dは2つの異なるバックグラウンドミュージックファイルまたはループプレイを再生します
- プレイ2背景音楽ファイル、および文字
- ループ効果音に関連する1つを停止します。私はオプションに持っている。この問題については
。
どれが2つありますか&をお勧めしますか?
よろしくお願いいたします。
シーンのBGMとキャラクターのバックグラウンドミュージックが必要ですが、キャラクターが何らかのアクションを起こすと停止する必要があります。同じ時間でCocos2dは2つの異なるバックグラウンドミュージックファイルまたはループプレイを再生します
。
どれが2つありますか&をお勧めしますか?
よろしくお願いいたします。
あなたはcocos2dを使用していると言っていますので、私はあなたもSimpleAudioEngine
でcocos2dを使用していると仮定しました。
SimpleAudioEngine
では、2つの背景トラックを再生することはできません。いくつかの小さな変更でエフェクトをループすることが可能です:
-(int) playEffect:(NSString*) file loop:(BOOL) loop
メッセージを入力します。ALUInt
です。これを参考にしてください。ループを止めるには、それが必要です。-(void) stopEffectWithHandle:(int) handle
を入力し、OpenAL
に戻して効果を停止します。-EDIT-
ここで効果をループするためのいくつかのコードです:
効果を停止させるためのint handle = [[SimpleAudioEngine sharedEngine] playEffect:name];
if (loop) {
alSourcei(handle, AL_LOOPING, 1);
}
return handle;
そして、いくつか:@JamesWebsterの答えに
[[SimpleAudioEngine sharedEngine] stopEffect:handle];
@ToughGuyのコメントが私はその解決策で同じ問題に遭遇しました。
私はthis forum postからこのアプローチを使用してこの問題を解決しました。
プレイと効果:
CDSoundSource *loopSound = [[SimpleAudioEngine sharedEngine] soundSourceForFile:LOOPING_SOUND_FILENAME];
loopSound.looping = YES;
[loopSound play];
し、それを停止します。このことができます
[loopSound stop];
希望。
これは完全に機能します!ありがとう! – mxg
同時に多くの別のエフェクトを再生すると、ループで停止されるエフェクトが見つかりました。 –
これは、同時にロードできるサウンドの数がCocosDensionに制限があるためだと思います。 –