Bonjour,
J'ai un problème dans mon programme qui est assez gênant :
Lorsque j'appelle la fonction
window.close(), j'ai une erreur de type
"Access Violation" qui apparaît.
Le truc, c'est que si je l'appelle dès le début du programme, tout se ferme sans problème.
Le problème intervient donc
après que j'ai fait se déplacer mes personnages (j'ai donc manipulé des pointeurs et des listes dynamiques de type Vector ou Deque pour qu'ils trouvent un chemin optimal, puis déplacé leur sprites).
Je soupçonne donc un problème de pile ou de pointeurs, mais étant un peu nouveau dans le C++ et dans SFML, j'ai vraiment du mal à voir comment débuguer ça.
Je ne vous link malheureusement pas le code qui est assez exhaustif, mais en gros ça donne :
while (window.isOpen())
{
while (window.pollEvent(event))
{
if(event.type == Event::KeyPressed)
{
if(Keyboard::isKeyPressed(Keyboard::Escape))
window.close();
}
}
//Déplacer entites
for(int i=0; i<NB_CHAR; i++)
if(entite[i]->deplacement)
deplacer(*entite, entite[i], i, batiments);
// Draw the chars
for(int i=0; i<NB_CHAR; i++)
window.draw(entite[i]->char_sprite);
//Show the window
window.display();
}
Merci d'avance pour votre aide!
NB : J'utilise Windows 7, la dernière version de SFML (2.1), et Visual Studio 11 (2012).