J'ai d'abord écrit mon jeu en utilisant glfw. Cependant, en raison de son manque de portabilité Android, je dois remplacer tout mon code glfw avec SDL, car SDL est plus portable.Puis-je rechercher des événements avec SDL sans utiliser un while_loop intégré?
Ma boucle de jeu originale utilisant le travail de cadre de glfw était très striaghtforward. Le voici:
// game loop
while (!glfwWindowShouldClose(window)) {
//if-else statements that create
//the games state machine
//player input is received here
//rendering done here
}
Ok. Il y a probablement de meilleures manières d'écrire cette boucle de jeu, mais le point est le code travaillé pour le prototype de jeu.
Cependant, maintenant que je passe à SDL, j'ai rencontré un problème. Il semble que SDL_Event doive être placé dans une boucle while pour vérifier en permanence les événements. Et THIS while_loop est dans un autre while_loop. Donc, mon code ressemble à ceci:
while(!Quit) {
SDL_Event event;
while(SDL_PollEvent(&event)) {
//if-else statements that create
//the games state machine
//player input is received here
//rendering done here
}
}
Cependant, cette while_loop dans un while_loop a complètement foiré les jeux de rendu! Je suis maintenant en train de scintiller! Existe-t-il un autre moyen d'exprimer ce code en un seul while_loop comme je l'ai fait plus tôt avec glfw. Ou existe-t-il un moyen de vérifier les événements sans utiliser while_loop
Ne devrait pas la boucle 'SDL_PollEvent()' juste faire face aux événements? Votre code de rendu et tel devrait être en dehors de cela, dans votre boucle externe ... tel quel, vous rendez seulement, etc. quand vous traitez un événement ... – Dmitri