0

cocos2D アプリケーションでサウンドを再生するために SimpleAudioEngine を使用しています。ボタンをタップすると弾丸が発射され続け、弾丸が発射されるたびに音が鳴る状況があります。たまにシュートボタンを連打するとゲームシーンがカクカクします。これは、サウンドを統合したときに起こり始めました。

これは私がボタンタップで使用するコードです:

-(void)rocketButtonTapped:(id)sender
{
  [[SimpleAudioEngine sharedEngine] playEffect:@"rocket_fired.wav"];
  NSLog(@"Pencil Rocket");
  if(int_pencilRocketTagCount>=220)
  {
    int_pencilRocketTagCount=215;
  }
  [self performSelector:@selector(shootPencilRocket)];  
}

私に方法を提案してください...前もって感謝します..

4

1 に答える 1

2

ゲームを開始する前に、次の操作を行います。

[[SimpleAudioEngine sharedEngine] preloadEffect:@"rocket_fired.wav"];

これにより、エフェクトがメモリにロードされます。これで問題が解決しない場合は、問題が別の場所にある可能性があります。たとえば、ロケットの発射音の長さが数秒の場合、一度に再生される効果音の数が多すぎると、これが問題になる可能性があります。また、NSLog または CCLOG を介したデバッグ コンソールへの継続的なログ記録は遅く、フレームレートが簡単に低下する可能性があります。

また、音質を低下させるのにも役立ちます。(短い) サウンド エフェクトには 22 または 11 kHz のサンプル レートで十分です。エフェクト ファイルがステレオ チャンネルを使用している場合は、モノラルに変換してサイズを半分にします。エフェクトが使用するメモリが少ないほど、それを再生するハードウェアへの負担が少なくなります。

于 2012-07-12T09:41:40.277 に答える