Also versuche ich SDL zu lernen und ein kleines Spiel zu erstellen. Wenn der Benutzer die Leertaste drückt, sollte ein Ton abgespielt werden. Das funktioniert, aber der Sound dauert etwa 0,5 Sekunden. Wie würde ich das beheben? Ich habe die tatsächliche Datei überprüft, um zu sehen, ob die Verzögerung nur ein Teil davon war, und das stellte sich als nicht zutreffend heraus.Ich habe eine unbeabsichtigte Verzögerung beim Abspielen eines Mix_Chunk
SDL mit C++ auf Win Vista.
Hier einige relevante Code:
...
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());
...
}
der Griff Eingabefunktion:
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;
}
}
Wenn mehr benötigt wird, lassen Sie es mich wissen.
Vielen Dank! Das hat mich verrückt gemacht. – Malabarba