だから私はSDLを学び、小さなゲームを作ろうとしています。ユーザーがスペースバーを押すと、サウンドが再生されます。これは機能しますが、サウンドの再生に約 0.5 秒かかります... どうすれば修正できますか? 実際のファイルをチェックして、遅延がその一部であるかどうかを確認しましたが、そうではないことが判明しました。
Win Vista での C++ を使用した SDL。
関連するコードを次に示します。
...
Mix_OpenAudio( 22050, MIX_DEFAULT_FORMAT, 2, 4096 )
...
main()
{
...
Mix_PlayMusic( BG_Music, 0 ); //background music
while( quit == false )
{
fps.start();
fire.handleInput( event, ship.get_x_pos() );
...
}
ハンドル入力関数:
void lasersC::handleInput( SDL_Event &event, int x )
{
Uint8 *keystates = SDL_GetKeyState( NULL );
if ( keystates[ SDLK_SPACE ] && delay == 0)
{
Mix_PlayChannel(-1, laser, 0);
fired * F = new fired( NULL, S_HEIGHT - 50, x + 20 );
F->shot = lasers;
F->y_pos = S_HEIGHT - 50;
F->x_pos = x + 20;
weps.push_back( F );
delay = 10;
}
}
さらに必要な場合は、お知らせください。