Je lis un code de livre d'introduction sur SDL et il y a des exemples de code comme ceci:Que fait SDL_PollEvent?
void Game::handleEvents()
{
SDL_Event event;
if (SDL_PollEvent(&event))
{
switch (event.type)
{
case SDL_QUIT:
m_bRunning = false;
break;
default:
break;
}
}
}
Je comprends que cela se penchera dans la file d'attente d'événements et s'il y a quelque chose, récupérer et la course à la changement d'instruction. Avant d'ajouter ce code, la fenêtre était affichée mais vous ne pouviez ni glisser ni déposer, fermer ou redimensionner la fenêtre. Maintenant que j'ai ajouté ce code, je peux fermer la fenêtre qui était ce que j'attendais. Ce à quoi je ne m'attendais pas, c'est que je suis capable de faire glisser la fenêtre.
Je pensais que ce serait un événement distinct que je devrais inclure dans l'instruction switch dans le futur. Pourquoi le drag and drop a-t-il aussi fonctionné? C'est le SDL_PollEvent (parce que j'ai commenté l'instruction switch mais j'ai laissé le 'if', j'étais encore capable de faire glisser) mais pourquoi? Aussi, pourquoi seulement glisser-déposer était automatiquement fonctionnel? Pourquoi ne pas redimensionner?
Il devrait être 'while', pas' if'. Mais oui, dans presque tous les cas, vous devez répondre à des messages spécifiques à la plateforme (ce que SDL fait en interne lorsqu'il génère une file d'attente) ou le système de fenêtre ne le mettra pas à jour. – keltar