Donc j'essaie d'apprendre SDL et de créer un petit jeu. Lorsque l'utilisateur appuie sur la barre d'espace, il doit jouer un son. Cela fonctionne, mais le son prend environ 0,5 secondes à jouer ... Comment est-ce que je réparerais ceci? J'ai vérifié le fichier réel pour voir si le retard était juste une partie de celui-ci, et cela s'est avéré ne pas être le cas.J'ai un retard involontaire à jouer un Mix_Chunk
SDL avec C++ sur win vista.
est ici un code pertinent:
...
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());
...
}
la fonction d'entrée de la poignée:
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;
}
}
S'il en faut plus, laissez-moi savoir.
Merci! Cela me rendait fou. – Malabarba